Part of #10043 BREAKING CHANGE: - `@Component.precompile` was renamed to `@Component.entryComponents` (old property still works but is deprecated) - `ANALYZE_FOR_PRECOMPILE` was renamed to `ANALYZE_FOR_ENTRY_COMPONENTS` (no deprecations)
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.7 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 './init';
 | 
						|
 | 
						|
import {MainModule} from '../src/module';
 | 
						|
import {CompUsingLibModuleDirectiveAndPipe, CompUsingRootModuleDirectiveAndPipe, SOME_TOKEN, ServiceUsingLibModule, SomeLibModule, SomeService} from '../src/module_fixtures';
 | 
						|
 | 
						|
import {createComponent, createModule} from './util';
 | 
						|
 | 
						|
describe('NgModule', () => {
 | 
						|
  it('should support providers', () => {
 | 
						|
    const moduleRef = createModule();
 | 
						|
    expect(moduleRef.instance instanceof MainModule).toBe(true);
 | 
						|
    expect(moduleRef.injector.get(MainModule) instanceof MainModule).toBe(true);
 | 
						|
    expect(moduleRef.injector.get(SomeService) instanceof SomeService).toBe(true);
 | 
						|
  });
 | 
						|
 | 
						|
  it('should support entryComponents components', () => {
 | 
						|
    const moduleRef = createModule();
 | 
						|
    const cf = moduleRef.componentFactoryResolver.resolveComponentFactory(
 | 
						|
        CompUsingRootModuleDirectiveAndPipe);
 | 
						|
    expect(cf.componentType).toBe(CompUsingRootModuleDirectiveAndPipe);
 | 
						|
    const compRef = cf.create(moduleRef.injector);
 | 
						|
    expect(compRef.instance instanceof CompUsingRootModuleDirectiveAndPipe).toBe(true);
 | 
						|
  });
 | 
						|
 | 
						|
  it('should support entryComponents via the ANALYZE_FOR_ENTRY_COMPONENTS provider and function providers in components',
 | 
						|
     () => {
 | 
						|
       const moduleRef = createModule();
 | 
						|
       const cf = moduleRef.componentFactoryResolver.resolveComponentFactory(
 | 
						|
           CompUsingRootModuleDirectiveAndPipe);
 | 
						|
       expect(cf.componentType).toBe(CompUsingRootModuleDirectiveAndPipe);
 | 
						|
       // check that the function call that created the provider for ANALYZE_FOR_ENTRY_COMPONENTS
 | 
						|
       // worked.
 | 
						|
       expect(moduleRef.injector.get(SOME_TOKEN)).toEqual([
 | 
						|
         {a: 'b', component: CompUsingLibModuleDirectiveAndPipe}
 | 
						|
       ]);
 | 
						|
     });
 | 
						|
 | 
						|
  it('should support module directives and pipes', () => {
 | 
						|
    const compFixture = createComponent(CompUsingRootModuleDirectiveAndPipe);
 | 
						|
    compFixture.detectChanges();
 | 
						|
 | 
						|
    const debugElement = compFixture.debugElement;
 | 
						|
    expect(debugElement.children[0].properties['title']).toBe('transformed someValue');
 | 
						|
  });
 | 
						|
 | 
						|
  it('should support module directives and pipes on lib modules', () => {
 | 
						|
    const compFixture = createComponent(CompUsingLibModuleDirectiveAndPipe);
 | 
						|
    compFixture.detectChanges();
 | 
						|
 | 
						|
    const debugElement = compFixture.debugElement;
 | 
						|
    expect(debugElement.children[0].properties['title']).toBe('transformed someValue');
 | 
						|
 | 
						|
    expect(debugElement.injector.get(SomeLibModule) instanceof SomeLibModule).toBe(true);
 | 
						|
    expect(debugElement.injector.get(ServiceUsingLibModule) instanceof ServiceUsingLibModule)
 | 
						|
        .toBe(true);
 | 
						|
  });
 | 
						|
});
 |