109 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			109 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | var testPackage = require('../../helpers/test-package'); | ||
|  | var Dgeni = require('dgeni'); | ||
|  | 
 | ||
|  | describe('target inline-tag-def', function() { | ||
|  |   var dgeni, injector, te; | ||
|  | 
 | ||
|  |   beforeEach(function() { | ||
|  |     dgeni = new Dgeni([testPackage('target-package', true)]); | ||
|  |     injector = dgeni.configureInjector(); | ||
|  |     te = injector.get('targetEnvironments'); | ||
|  |   }); | ||
|  | 
 | ||
|  |   describe('addAllowed', function() { | ||
|  |     it('should store the target and whether it is active', function() { | ||
|  |       te.addAllowed('a', true); | ||
|  |       te.addAllowed('b', false); | ||
|  |       te.addAllowed('c'); | ||
|  |       expect(te.isActive('a')).toBe(true); | ||
|  |       expect(te.isActive('b')).toBe(false); | ||
|  |       expect(te.isActive('c')).toBe(false); | ||
|  |     }); | ||
|  |   }); | ||
|  | 
 | ||
|  |   describe('removeAllowed', function() { | ||
|  |     it('should disallow the target', function() { | ||
|  |       te.addAllowed('a'); | ||
|  |       te.addAllowed('b'); | ||
|  |       te.removeAllowed('b'); | ||
|  |       expect(te.isActive('a')).toBe(false); | ||
|  |       expect(function() { | ||
|  |         te.isActive('b'); | ||
|  |       }).toThrowError('Error accessing target "b". It is not in the list of allowed targets: a'); | ||
|  |     }); | ||
|  |   }); | ||
|  | 
 | ||
|  |   describe('activate', function() { | ||
|  |     it('should active an already allowed target', function() { | ||
|  |       te.addAllowed('a', true); | ||
|  |       te.addAllowed('b', false); | ||
|  |       te.addAllowed('c'); | ||
|  | 
 | ||
|  |       te.activate('a'); | ||
|  |       te.activate('b'); | ||
|  |       te.activate('c'); | ||
|  |       expect(te.isActive('a')).toBe(true); | ||
|  |       expect(te.isActive('b')).toBe(true); | ||
|  |       expect(te.isActive('c')).toBe(true); | ||
|  |     }); | ||
|  |   }); | ||
|  | 
 | ||
|  |   describe('deactivate', function() { | ||
|  |     it('should deactive an already allowed target', function() { | ||
|  |       te.addAllowed('a', true); | ||
|  |       te.addAllowed('b', false); | ||
|  |       te.addAllowed('c'); | ||
|  | 
 | ||
|  |       te.deactivate('a'); | ||
|  |       te.deactivate('b'); | ||
|  |       te.deactivate('c'); | ||
|  |       expect(te.isActive('a')).toBe(false); | ||
|  |       expect(te.isActive('b')).toBe(false); | ||
|  |       expect(te.isActive('c')).toBe(false); | ||
|  |     }); | ||
|  |   }); | ||
|  | 
 | ||
|  |   describe('isActive', function() { | ||
|  |     it('should return true if the item is allowed and active', function() { | ||
|  |       te.addAllowed('a', true); | ||
|  |       te.addAllowed('b', false); | ||
|  | 
 | ||
|  |       expect(te.isActive('a')).toBe(true); | ||
|  |       expect(te.isActive('b')).toBe(false); | ||
|  |     }); | ||
|  |   }); | ||
|  | 
 | ||
|  |   describe('hasActive', function() { | ||
|  |     it('should return true if there are any active targets', function() { | ||
|  |       te.addAllowed('a', true); | ||
|  |       te.addAllowed('b', false); | ||
|  |       expect(te.hasActive()).toBe(true); | ||
|  | 
 | ||
|  |       te.deactivate('a'); | ||
|  |       expect(te.hasActive()).toBe(false); | ||
|  | 
 | ||
|  |       te.activate('b'); | ||
|  |       expect(te.hasActive()).toBe(true); | ||
|  |     }); | ||
|  |   }); | ||
|  | 
 | ||
|  |   describe('someActive', function() { | ||
|  |     it('should return true if the array of targets passed are all allowed and at least on is active', | ||
|  |        function() { | ||
|  |          te.addAllowed('a', true); | ||
|  |          te.addAllowed('b', false); | ||
|  |          te.addAllowed('c'); | ||
|  | 
 | ||
|  |          expect(te.someActive(['a'])).toBe(true); | ||
|  |          expect(te.someActive(['b'])).toBe(false); | ||
|  |          expect(te.someActive(['a', 'b'])).toBe(true); | ||
|  |          expect(te.someActive(['b', 'c'])).toBe(false); | ||
|  |          expect(te.someActive([])).toBe(false); | ||
|  | 
 | ||
|  |          expect(function() { te.someActive('d'); }) | ||
|  |              .toThrowError( | ||
|  |                  'Error accessing target "d". It is not in the list of allowed targets: a,b,c'); | ||
|  |        }); | ||
|  |   }); | ||
|  | }); |