it('retrieves a nested list of user roles, properly decorated', function() { // Permissions.roles('DEC1:', {roles: [], permissions: ['PERM1', 'PERM2:']); // Permissions.roles('DEC2', {roles: ['DEC1:'], permissions: []}); // Permissions.roles('DEC3', {roles: ['DEC1', 'DEC2'], permissions: []}); var user1 = { roles: ['DEC1:OK']}; var user2 = { roles: ['DEC2:OK']}; var user3 = { roles: ['DEC3:OK']}; var roles1 = Permissions.getUserRoles(user1); var roles2 = Permissions.getUserRoles(user2); var roles3 = Permissions.getUserRoles(user3); assert.sameSet(['DEC1:OK'], roles1); assert.sameSet(['DEC2:OK', 'DEC1:OK'], roles2); assert.sameSet(['DEC3:OK', 'DEC2'], roles3); });
it('ignores undecorated roles when decoration is required', function() { // Permissions.roles('DEC1:', {roles: [], permissions: ['PERM1', 'PERM2:']); // Permissions.roles('DEC2', {roles: ['DEC1:'], permissions: []}); // Permissions.roles('DEC3', {roles: ['DEC1', 'DEC2'], permissions: []}); var user1 = { roles: ['DEC1']}; var user2 = { roles: ['DEC2']}; var user3 = { roles: ['DEC3']}; var roles1 = Permissions.getUserRoles(user1); var roles2 = Permissions.getUserRoles(user2); var roles3 = Permissions.getUserRoles(user3); assert.equal(roles1.length, 0); assert.sameSet(['DEC2'], roles2); assert.sameSet(['DEC3', 'DEC2'], roles3); })
it('retrieves a list of nested user roles', function() { // Permissions.roles('NEST1', {roles: ['NEST2'], permissions: ['PERM2']); // Permissions.roles('NEST2', {roles: [], permissions: ['PERM2']); var user = { roles: ['NEST1'] }; var roles = Permissions.getUserRoles(user); assert.sameSet(['NEST1', 'NEST2'], roles); });
it('cascades decorations through nested roles to permissions', function() { // Permissions.roles('DEC1:', {roles: [], permissions: ['PERM1', 'PERM2:']); // Permissions.roles('DEC4:', {roles: ['DEC1:SNAIL', 'DEC1:'], permissions: []) var user = {roles: ['DEC4:OK']}; var permissions = Permissions.getUserPermissions(user); assert.sameSet(['PERM1', 'PERM2:SNAIL', 'PERM2:OK'], permissions); });
_ary1.reduce(function(p, c, i, a) { if (c instanceof Array) { assert.sameSet(c, _ary2[i]); } else { assert.deepEqual(c, _ary2[i], message); } return null }, null);
it('retrieves a simple list of user roles', function() { // Permissions.roles('ROLE1', {roles: [], permissions: ['PERM1']); // Permissions.roles('ROLE2', {roles: [], permissions: ['PERM2']); var user = { roles: ['ROLE1', 'ROLE2'] }; var roles = Permissions.getUserRoles(user); assert.sameSet(['ROLE1', 'ROLE2'], roles); });
it('decorates permissions requiring decoration while leaving others undecorated', function() { // Permissions.roles('DEC1:', {roles: [], permissions: ['PERM1', 'PERM2:']); var user = {roles: ['DEC1:OK'], permissions: []}; var permissions = Permissions.getUserPermissions(user); assert.sameSet(['PERM1', 'PERM2:OK'], permissions) });
it('retrieves a simple list of user permissions', function() { // Permissions.roles('ROLE1', {roles: [], permissions: ['PERM1']); var user = { roles: ['ROLE1'], permissions: ['CUSTOM1']}; var permissions = Permissions.getUserPermissions(user); assert.sameSet(['PERM1', 'CUSTOM1'], permissions); });