uxess
Version:
Generic authorization module for role-based handling of ui elements
110 lines (84 loc) • 3.46 kB
JavaScript
describe('uxsPermitHandler configuration', function() {
var uxsPermitHandler;
beforeEach(function() {
angular.module('permitHandlerConfig', []).config(function(uxsPermitHandlerProvider) {
uxsPermitHandlerProvider.setPermits('admin');
});
module('uxs', 'permitHandlerConfig');
});
beforeEach(inject(function(_uxsPermitHandler_) {
uxsPermitHandler = _uxsPermitHandler_;
}));
it('should provide permits', function() {
expect(uxsPermitHandler.getPermits()).toEqual(['admin']);
});
});
describe('uxsPermitHandler', function() {
var uxsPermitHandler;
var $rootScope;
beforeEach(module('uxs'));
beforeEach(inject(function (_$rootScope_, _uxsPermitHandler_) {
$rootScope = _$rootScope_;
uxsPermitHandler = _uxsPermitHandler_;
}));
it('should inject mock factory', function() {
expect($rootScope).toBeDefined();
expect(uxsPermitHandler).toBeDefined();
});
describe('setPermits | getPermits', function() {
it('should set permits', function() {
uxsPermitHandler.setPermits(['admin']);
expect(uxsPermitHandler.getPermits()).toEqual(['admin']);
});
it('should set multiple permits', function() {
uxsPermitHandler.setPermits(['admin', 'user']);
expect(uxsPermitHandler.getPermits().length).toEqual(2);
});
it('should broadcast event', function() {
spyOn($rootScope, '$broadcast').and.callThrough();
uxsPermitHandler.setPermits('admin');
expect($rootScope.$broadcast).toHaveBeenCalled();
});
});
describe('parsePermits', function() {
it('should get empty array | empty string', function() {
expect(uxsPermitHandler.parsePermits('')).toEqual([]);
});
it('should get empty array | number', function() {
expect(uxsPermitHandler.parsePermits(42)).toEqual([]);
});
it('should get empty array | null', function() {
expect(uxsPermitHandler.parsePermits(null)).toEqual([]);
});
it('should get empty array | undefined', function() {
expect(uxsPermitHandler.parsePermits(undefined)).toEqual([]);
});
it('should get empty array | empty array', function() {
expect(uxsPermitHandler.parsePermits([])).toEqual([]);
});
it('should get empty array | empty object', function() {
expect(uxsPermitHandler.parsePermits({})).toEqual([]);
});
it('should get empty array | object', function() {
expect(uxsPermitHandler.parsePermits({answer: 42})).toEqual([]);
});
it('should get array with one item', function() {
expect(uxsPermitHandler.parsePermits('admin')).toEqual(['admin']);
});
it('should get array with multiple items | string whitespaces', function() {
expect(uxsPermitHandler.parsePermits('admin,user ')).toEqual(['admin', 'user']);
});
it('should get array with multiple items | numbers', function() {
expect(uxsPermitHandler.parsePermits([42, 42])).toEqual(['42', '42']);
});
it('should get array with multiple items | null', function() {
expect(uxsPermitHandler.parsePermits([null, null])).toEqual(['', '']);
});
it('should get array with multiple items | array', function() {
expect(uxsPermitHandler.parsePermits(['admin', 'user'])).toEqual(['admin', 'user']);
});
it('should get array with multiple items | uppercase', function() {
expect(uxsPermitHandler.parsePermits(['ADMIN', 'USER'])).toEqual(['admin', 'user']);
});
});
});