58 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | /** | ||
|  |  * @license | ||
|  |  * Copyright Google Inc. All Rights Reserved. | ||
|  |  * | ||
|  |  * Use of this source code is governed by an MIT-style license that can be | ||
|  |  * found in the LICENSE file at https://angular.io/license
 | ||
|  |  */ | ||
|  | 
 | ||
|  | import {Ng1Token} from '@angular/upgrade/src/angular_js'; | ||
|  | import {compileFactory, injectorFactory, parseFactory, rootScopeFactory, setTempInjectorRef} from '@angular/upgrade/src/aot/angular1_providers'; | ||
|  | 
 | ||
|  | export function main() { | ||
|  |   describe('upgrade angular1_providers', () => { | ||
|  |     describe('compileFactory', () => { | ||
|  |       it('should retrieve and return `$compile`', () => { | ||
|  |         const services: {[key: string]: any} = {$compile: 'foo'}; | ||
|  |         const mockInjector = {get: (name: Ng1Token): any => services[name], has: () => true}; | ||
|  | 
 | ||
|  |         expect(compileFactory(mockInjector)).toBe('foo'); | ||
|  |       }); | ||
|  |     }); | ||
|  | 
 | ||
|  |     describe('injectorFactory', () => { | ||
|  |       it('should return the injector value that was previously set', () => { | ||
|  |         const mockInjector = {get: () => {}, has: () => false}; | ||
|  |         setTempInjectorRef(mockInjector); | ||
|  |         const injector = injectorFactory(); | ||
|  |         expect(injector).toBe(mockInjector); | ||
|  |       }); | ||
|  | 
 | ||
|  |       it('should unset the injector after the first call (to prevent memory leaks)', () => { | ||
|  |         const mockInjector = {get: () => {}, has: () => false}; | ||
|  |         setTempInjectorRef(mockInjector); | ||
|  |         injectorFactory(); | ||
|  |         const injector = injectorFactory(); | ||
|  |         expect(injector).toBe(null); | ||
|  |       }); | ||
|  |     }); | ||
|  | 
 | ||
|  |     describe('parseFactory', () => { | ||
|  |       it('should retrieve and return `$parse`', () => { | ||
|  |         const services: {[key: string]: any} = {$parse: 'bar'}; | ||
|  |         const mockInjector = {get: (name: Ng1Token): any => services[name], has: () => true}; | ||
|  | 
 | ||
|  |         expect(parseFactory(mockInjector)).toBe('bar'); | ||
|  |       }); | ||
|  |     }); | ||
|  | 
 | ||
|  |     describe('rootScopeFactory', () => { | ||
|  |       it('should retrieve and return `$rootScope`', () => { | ||
|  |         const services: {[key: string]: any} = {$rootScope: 'baz'}; | ||
|  |         const mockInjector = {get: (name: Ng1Token): any => services[name], has: () => true}; | ||
|  | 
 | ||
|  |         expect(rootScopeFactory(mockInjector)).toBe('baz'); | ||
|  |       }); | ||
|  |     }); | ||
|  |   }); | ||
|  | } |