adding simple test for adding and removing users on a role. (#3198)
This commit is contained in:
committed by
Florent Vilmart
parent
ae30ec647b
commit
e069b20ef9
@@ -347,4 +347,67 @@ describe('Parse Role testing', () => {
|
||||
})
|
||||
});
|
||||
|
||||
it('should add multiple users to a role and remove users', (done) => {
|
||||
var user, user2, user3;
|
||||
var role;
|
||||
var obj;
|
||||
|
||||
var prACL = new Parse.ACL();
|
||||
prACL.setPublicReadAccess(true);
|
||||
prACL.setPublicWriteAccess(true);
|
||||
|
||||
createTestUser().then((x) => {
|
||||
user = x;
|
||||
user2 = new Parse.User();
|
||||
return user2.save({ username: 'user2', password: 'omgbbq' });
|
||||
}).then(() => {
|
||||
user3 = new Parse.User();
|
||||
return user3.save({ username: 'user3', password: 'omgbbq' });
|
||||
}).then(() => {
|
||||
role = new Parse.Role('sharedRole', prACL);
|
||||
var users = role.relation('users');
|
||||
users.add(user);
|
||||
users.add(user2);
|
||||
users.add(user3);
|
||||
return role.save({}, { useMasterKey: true });
|
||||
}).then(() => {
|
||||
// query for saved role and get 3 users
|
||||
var query = new Parse.Query('_Role');
|
||||
query.equalTo('name', 'sharedRole');
|
||||
return query.find({ useMasterKey: true });
|
||||
}).then((role) => {
|
||||
expect(role.length).toEqual(1);
|
||||
var users = role[0].relation('users').query();
|
||||
return users.find({ useMasterKey: true });
|
||||
}).then((users) => {
|
||||
expect(users.length).toEqual(3);
|
||||
obj = new Parse.Object('TestObjectRoles');
|
||||
obj.set('ACL', prACL);
|
||||
return obj.save(null, { useMasterKey: true });
|
||||
}).then(() => {
|
||||
// Above, the Admin role was added to the Customer role.
|
||||
// An object secured by the Customer ACL should be able to be edited by the Admin user.
|
||||
obj.set('changedByUsers', true);
|
||||
return obj.save(null, { sessionToken: user.getSessionToken() });
|
||||
}).then(() => {
|
||||
// query for saved role and get 3 users
|
||||
var query = new Parse.Query('_Role');
|
||||
query.equalTo('name', 'sharedRole');
|
||||
return query.find({ useMasterKey: true });
|
||||
}).then((role) => {
|
||||
expect(role.length).toEqual(1);
|
||||
var users = role[0].relation('users');
|
||||
users.remove(user);
|
||||
users.remove(user3);
|
||||
return role[0].save({}, { useMasterKey: true });
|
||||
}).then((role) =>{
|
||||
var users = role.relation('users').query();
|
||||
return users.find({ useMasterKey: true });
|
||||
}).then((users) => {
|
||||
expect(users.length).toEqual(1);
|
||||
expect(users[0].get('username')).toEqual('user2');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user