| 
									
										
										
										
											2016-10-20 10:58:53 -07:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @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 {fakeAsync, tick} from '@angular/core/testing'; | 
					
						
							| 
									
										
										
										
											2017-03-02 12:12:46 -08:00
										 |  |  | import {SpyNgModuleFactoryLoader} from '../testing/src/router_testing_module'; | 
					
						
							| 
									
										
										
										
											2016-10-20 10:58:53 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | describe('SpyNgModuleFactoryLoader', () => { | 
					
						
							|  |  |  |   it('should invoke the compiler when the setter is called', () => { | 
					
						
							|  |  |  |     const expected = Promise.resolve('returned'); | 
					
						
							|  |  |  |     const compiler: any = {compileModuleAsync: () => {}}; | 
					
						
							|  |  |  |     spyOn(compiler, 'compileModuleAsync').and.returnValue(expected); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const r = new SpyNgModuleFactoryLoader(<any>compiler); | 
					
						
							|  |  |  |     r.stubbedModules = {'one': 'someModule'}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     expect(compiler.compileModuleAsync).toHaveBeenCalledWith('someModule'); | 
					
						
							|  |  |  |     expect(r.stubbedModules['one']).toBe(expected); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('should return the created promise', () => { | 
					
						
							| 
									
										
										
										
											2017-10-24 14:54:08 +03:00
										 |  |  |     const expected: any = Promise.resolve('returned'); | 
					
						
							| 
									
										
										
										
											2016-10-20 10:58:53 -07:00
										 |  |  |     const compiler: any = {compileModuleAsync: () => expected}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const r = new SpyNgModuleFactoryLoader(<any>compiler); | 
					
						
							|  |  |  |     r.stubbedModules = {'one': 'someModule'}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     expect(r.load('one')).toBe(expected); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('should return a rejected promise when given an invalid path', fakeAsync(() => { | 
					
						
							|  |  |  |        const r = new SpyNgModuleFactoryLoader(<any>null); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |        let error: any = null; | 
					
						
							| 
									
										
										
										
											2017-12-17 15:10:54 -08:00
										 |  |  |        r.load('two').catch((e: any) => error = e); | 
					
						
							| 
									
										
										
										
											2016-10-20 10:58:53 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |        tick(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |        expect(error).toEqual(new Error('Cannot find module two')); | 
					
						
							|  |  |  |      })); | 
					
						
							| 
									
										
										
										
											2017-03-02 12:12:46 -08:00
										 |  |  | }); |