diff --git a/tests/Parse/ParseUserTest.php b/tests/Parse/ParseUserTest.php index 2e99f912..52ee6fa8 100644 --- a/tests/Parse/ParseUserTest.php +++ b/tests/Parse/ParseUserTest.php @@ -2,6 +2,7 @@ namespace Parse\Test; +use Parse\ParseCloud; use Parse\ParseClient; use Parse\ParseObject; use Parse\ParseQuery; @@ -328,6 +329,16 @@ public function testBecome() ParseUser::become('garbage_token'); } + public function testBecomeFromCloudCode() + { + $sessionToken = ParseCloud::run('createTestUser', []); + + $user = ParseUser::become($sessionToken); + $this->assertEquals(ParseUser::getCurrentUser(), $user); + $this->assertEquals('harry', $user->get('username')); + $this->assertEquals($user->getSessionToken(), $sessionToken); + } + public function testCannotSingUpAlreadyExistingUser() { $this->testUserSignUp(); diff --git a/tests/cloud-code.js b/tests/cloud-code.js index d83d0ee3..d2fcbd37 100644 --- a/tests/cloud-code.js +++ b/tests/cloud-code.js @@ -7,6 +7,15 @@ Parse.Cloud.define('bar', (request) => { } }); +Parse.Cloud.define('createTestUser', async (request) => { + const user = new Parse.User(); + user.set('username', 'harry'); + user.set('password', 'potter'); + await user.signUp(); + const loggedIn = await Parse.User.logIn('harry', 'potter'); + return loggedIn.getSessionToken(); +}); + Parse.Cloud.define('foo', (request) => { var key1 = request.params.key1; var key2 = request.params.key2;