Design doc: https://docs.google.com/document/d/1VmTkz0EbEVSWfEEWEvQ5sXyQXSCvtMOw4t7pKU-jOwc/edit?usp=sharing
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.4 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 {Component} from '@angular/core';
 | |
| import {TestBed} from '@angular/core/testing';
 | |
| import {ServerTestingModule, platformServerTesting} from '@angular/platform-server/testing';
 | |
| 
 | |
| import {SomeDep, SomeDirective, SomeModule, SomePipe, SomePrivateComponent, SomeService, expectInstanceCreated} from '../src/jit_summaries';
 | |
| import {SomeModuleNgSummary} from '../src/jit_summaries.ngsummary';
 | |
| 
 | |
| describe('Jit Summaries', () => {
 | |
|   beforeEach(() => {
 | |
|     TestBed.initTestEnvironment(ServerTestingModule, platformServerTesting(), SomeModuleNgSummary);
 | |
|   });
 | |
| 
 | |
|   afterEach(() => { TestBed.resetTestEnvironment(); });
 | |
| 
 | |
|   it('should use directive metadata from summaries', () => {
 | |
|     @Component({template: '<div someDir></div>'})
 | |
|     class TestComp {
 | |
|     }
 | |
| 
 | |
|     TestBed.configureTestingModule({providers: [SomeDep], declarations: [TestComp, SomeDirective]})
 | |
|         .createComponent(TestComp);
 | |
|     expectInstanceCreated(SomeDirective);
 | |
|   });
 | |
| 
 | |
|   it('should use pipe metadata from summaries', () => {
 | |
|     @Component({template: '{{1 | somePipe}}'})
 | |
|     class TestComp {
 | |
|     }
 | |
| 
 | |
|     TestBed.configureTestingModule({providers: [SomeDep], declarations: [TestComp, SomePipe]})
 | |
|         .createComponent(TestComp);
 | |
|     expectInstanceCreated(SomePipe);
 | |
|   });
 | |
| 
 | |
|   it('should use Service metadata from summaries', () => {
 | |
|     TestBed.configureTestingModule({
 | |
|       providers: [SomeService, SomeDep],
 | |
|     });
 | |
|     TestBed.get(SomeService);
 | |
|     expectInstanceCreated(SomeService);
 | |
|   });
 | |
| 
 | |
|   it('should use NgModule metadata from summaries', () => {
 | |
|     @Component({template: '<div someDir>{{1 | somePipe}}</div>'})
 | |
|     class TestComp {
 | |
|       constructor(service: SomeService) {}
 | |
|     }
 | |
| 
 | |
|     TestBed
 | |
|         .configureTestingModule(
 | |
|             {providers: [SomeDep], declarations: [TestComp], imports: [SomeModule]})
 | |
|         .createComponent(TestComp);
 | |
| 
 | |
|     expectInstanceCreated(SomeModule);
 | |
|     expectInstanceCreated(SomeDirective);
 | |
|     expectInstanceCreated(SomePipe);
 | |
|     expectInstanceCreated(SomeService);
 | |
|   });
 | |
| 
 | |
|   it('should allow to create private components from imported NgModule summaries', () => {
 | |
|     TestBed.configureTestingModule({providers: [SomeDep], imports: [SomeModule]})
 | |
|         .createComponent(SomePrivateComponent);
 | |
|     expectInstanceCreated(SomePrivateComponent);
 | |
|   });
 | |
| }); |