70 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			70 lines
		
	
	
		
			2.3 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 {MockDirectory, compile, expectNoDiagnostics, setup, toMockFileArray} from './test_util'; | ||
|  | 
 | ||
|  | describe('aot stubs', () => { | ||
|  |   let angularFiles = setup(); | ||
|  | 
 | ||
|  |   it('should create empty .ngfactory and .ngsummary files for every source file', () => { | ||
|  |     const appDir = {'app.ts': `export const x = 1;`}; | ||
|  |     const rootDir = {'app': appDir}; | ||
|  |     const {genFiles} = | ||
|  |         compile([rootDir, angularFiles], {postCompile: expectNoDiagnostics, stubsOnly: true}); | ||
|  |     expect(genFiles.find((f) => f.genFileUrl === '/app/app.ngfactory.ts')).toBeTruthy(); | ||
|  |     expect(genFiles.find((f) => f.genFileUrl === '/app/app.ngsummary.ts')).toBeTruthy(); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should create empty .ngstyle files for imported css files', () => { | ||
|  |     const appDir = { | ||
|  |       'app.ts': `
 | ||
|  |         import {Component, NgModule} from '@angular/core'; | ||
|  | 
 | ||
|  |         @Component({ | ||
|  |           template: '', | ||
|  |           styleUrls: ['./style.css'] | ||
|  |         }) | ||
|  |         export class MyComp {} | ||
|  | 
 | ||
|  |         @NgModule({ | ||
|  |           declarations: [MyComp] | ||
|  |         }) | ||
|  |         export class MyModule {} | ||
|  |         export const x = 1; | ||
|  |       `,
 | ||
|  |       'style.css': '' | ||
|  |     }; | ||
|  |     const rootDir = {'app': appDir}; | ||
|  |     const {genFiles} = | ||
|  |         compile([rootDir, angularFiles], {postCompile: expectNoDiagnostics, stubsOnly: true}); | ||
|  |     expect(genFiles.find((f) => f.genFileUrl === '/app/style.css.shim.ngstyle.ts')).toBeTruthy(); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should create stub exports for NgModules of the right type', () => { | ||
|  |     const appDir = { | ||
|  |       'app.module.ts': `
 | ||
|  |         import { NgModule } from '@angular/core'; | ||
|  | 
 | ||
|  |         @NgModule() | ||
|  |         export class MyModule {} | ||
|  |       `,
 | ||
|  |       'app.boot.ts': `
 | ||
|  |         import {NgModuleFactory} from '@angular/core'; | ||
|  |         import {MyModuleNgFactory} from './app.module.ngfactory'; | ||
|  |         import {MyModuleNgSummary} from './app.module.ngsummary'; | ||
|  |         import {MyModule} from './app.module'; | ||
|  | 
 | ||
|  |         export const factory: NgModuleFactory<MyModule> = MyModuleNgFactory; | ||
|  |         export const summary: () => any[] = MyModuleNgSummary; | ||
|  |       `
 | ||
|  |     }; | ||
|  |     const rootDir = {'app': appDir}; | ||
|  |     compile([rootDir, angularFiles], {postCompile: expectNoDiagnostics, stubsOnly: true}); | ||
|  |   }); | ||
|  | }); |