| 
									
										
										
										
											2016-07-18 03:50:31 -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
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-12 19:14:17 -07:00
										 |  |  | import {Injector, NgModule} from '@angular/core'; | 
					
						
							| 
									
										
										
										
											2017-03-02 12:12:46 -08:00
										 |  |  | import {beforeEach, describe, expect, inject, it} from '@angular/core/testing/src/testing_internal'; | 
					
						
							| 
									
										
										
										
											2017-08-16 09:00:03 -07:00
										 |  |  | import {JitReflector} from '@angular/platform-browser-dynamic/src/compiler_reflector'; | 
					
						
							| 
									
										
										
										
											2017-05-18 13:46:51 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-02 12:12:46 -08:00
										 |  |  | import {MockNgModuleResolver} from '../testing'; | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | export function main() { | 
					
						
							|  |  |  |   describe('MockNgModuleResolver', () => { | 
					
						
							| 
									
										
										
										
											2016-11-12 14:08:58 +01:00
										 |  |  |     let ngModuleResolver: MockNgModuleResolver; | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     beforeEach(inject([Injector], (injector: Injector) => { | 
					
						
							| 
									
										
										
										
											2017-08-16 09:00:03 -07:00
										 |  |  |       ngModuleResolver = new MockNgModuleResolver(new JitReflector()); | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  |     })); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe('NgModule overriding', () => { | 
					
						
							|  |  |  |       it('should fallback to the default NgModuleResolver when templates are not overridden', | 
					
						
							|  |  |  |          () => { | 
					
						
							| 
									
										
										
										
											2016-11-12 14:08:58 +01:00
										 |  |  |            const ngModule = ngModuleResolver.resolve(SomeNgModule); | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  |            expect(ngModule.declarations).toEqual([SomeDirective]); | 
					
						
							|  |  |  |          }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should allow overriding the @NgModule', () => { | 
					
						
							|  |  |  |         ngModuleResolver.setNgModule( | 
					
						
							| 
									
										
										
										
											2016-09-12 19:14:17 -07:00
										 |  |  |             SomeNgModule, new NgModule({declarations: [SomeOtherDirective]})); | 
					
						
							| 
									
										
										
										
											2016-11-12 14:08:58 +01:00
										 |  |  |         const ngModule = ngModuleResolver.resolve(SomeNgModule); | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  |         expect(ngModule.declarations).toEqual([SomeOtherDirective]); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SomeDirective {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SomeOtherDirective {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @NgModule({declarations: [SomeDirective]}) | 
					
						
							|  |  |  | class SomeNgModule { | 
					
						
							|  |  |  | } |