diff --git a/spec/ParseUser.spec.js b/spec/ParseUser.spec.js index d6762161b9..982c37b731 100644 --- a/spec/ParseUser.spec.js +++ b/spec/ParseUser.spec.js @@ -400,6 +400,64 @@ describe('Parse.User testing', () => { }); }); + it('saveAll propagates the sessionToken correctly (#3665)', (done) => { + let sessionToken; + const objects = []; + Parse.User + .signUp('username', 'password').then((user) => { + sessionToken = user.getSessionToken(); + const acl = new Parse.ACL(); + acl.setReadAccess(user.id, true); + acl.setWriteAccess(user.id, true); + + while(objects.length != 10) { + const obj = new Parse.Object('Object'); + obj.setACL(acl); + objects.push(obj); + } + return Parse.Object.saveAll(objects, {useMasterKey: true}); + }).then(() => { + objects.forEach((obj) => { + obj.set('key', 'value'); + }); + return Parse.Object.saveAll(objects, { sessionToken }); + }).then(done, done.fail); + }); + + it('saveAll propagates the sessionToken correctly with a role (#3665)', (done) => { + let sessionToken; + const objects = []; + const adminRole = new Parse.Role('admin', new Parse.ACL()); + const signUp = Parse.User.signUp('username', 'password'); + const otherUser = new Parse.User(); + Parse.Promise.when(signUp, adminRole.save(), otherUser.save({ + username: 'other', + password: 'password' + })).then((user, admin) => { + sessionToken = user.getSessionToken(); + const acl = new Parse.ACL(); + acl.setRoleReadAccess(admin, true); + acl.setRoleWriteAccess(admin, true); + acl.setReadAccess(otherUser.id, true); + acl.setWriteAccess(otherUser.id, true); + + while(objects.length != 10) { + const obj = new Parse.Object('Object'); + obj.setACL(acl); + objects.push(obj); + } + admin.relation('users').add(user); + return admin.save(null, {useMasterKey: true}).then(() => { + return Parse.Object.saveAll(objects, {useMasterKey: true}); + }) + }).then(() => { + objects.forEach((obj) => { + obj.set('key', 'value'); + }); + return Parse.Object.saveAll(objects, { sessionToken }); + }).then(done, done.fail); + }); + it("current user", (done) => { var user = new Parse.User(); user.set("password", "asdf");