blob: 5f74223e1518f2dd2e19cfe5b624b7806a2b6e5c [file] [log] [blame]
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
import {
setPermissionOnObject,
deletePermissionFromObject
} from '../actions';
describe('Permissions Actions', () => {
describe('deleting roles', () => {
it('throws if a role is not in permissions', () => {
const p = {
admins: {
names: ['abc'],
roles: []
},
members: {
names: [],
roles: []
}
};
expect(() => {
deletePermissionFromObject(p, 'admins', 'names', 'pizza');
}).toThrow();
});
it('deletes roles', () => {
const p = {
admins: {
names: ['abc', 'furbie'],
roles: []
},
members: {
names: [],
roles: []
}
};
const res = deletePermissionFromObject(p, 'admins', 'names', 'abc');
expect(res).toEqual({
admins: {
names: ['furbie'],
roles: []
},
members: {
names: [],
roles: []
}
});
});
});
describe('adding roles', () => {
it('throws if a role is already in permissions', () => {
const p = {
admins: {
names: ['abc'],
roles: []
},
members: {
names: [],
roles: []
}
};
expect(() => {
setPermissionOnObject(p, 'admins', 'names', 'abc');
}).toThrow();
});
it('adds if not already present', () => {
const p = {
admins: {
names: ['abc'],
roles: []
},
members: {
names: [],
roles: []
}
};
const res = setPermissionOnObject(p, 'admins', 'names', 'test123');
expect(res).toEqual({
admins: {
names: ['abc', 'test123'],
roles: []
},
members: {
names: [],
roles: []
}
});
});
});
});