diff --git a/modules/@angular/core/test/linker/entry_components_integration_spec.ts b/modules/@angular/core/test/linker/entry_components_integration_spec.ts
index c7d8f4123c..989a0c78ff 100644
--- a/modules/@angular/core/test/linker/entry_components_integration_spec.ts
+++ b/modules/@angular/core/test/linker/entry_components_integration_spec.ts
@@ -7,10 +7,7 @@
*/
import {ANALYZE_FOR_ENTRY_COMPONENTS, Component, ComponentFactoryResolver, NoComponentFactoryError, forwardRef} from '@angular/core';
-import {ViewMetadata} from '@angular/core/src/metadata/view';
import {TestBed} from '@angular/core/testing';
-import {AsyncTestCompleter, TestComponentBuilder, beforeEach, beforeEachProviders, ddescribe, describe, expect, iit, inject, it, xdescribe, xit} from '@angular/core/testing/testing_internal';
-
import {Console} from '../../src/console';
import {stringify} from '../../src/facade/lang';
@@ -34,86 +31,52 @@ function declareTests({useJit}: {useJit: boolean}) {
TestBed.configureCompiler(
{useJit: useJit, providers: [{provide: Console, useValue: console}]});
TestBed.configureTestingModule({declarations: [MainComp, ChildComp, NestedChildComp]});
+ TestBed.compileComponents();
});
- it('should warn and auto declare if the component was not declared nor imported by the module',
- inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
+ it('should resolve ComponentFactories from the same component', () => {
+ const compFixture = TestBed.createComponent(MainComp);
+ let mainComp: MainComp = compFixture.componentInstance;
+ expect(compFixture.componentRef.injector.get(ComponentFactoryResolver)).toBe(mainComp.cfr);
+ var cf = mainComp.cfr.resolveComponentFactory(ChildComp);
+ expect(cf.componentType).toBe(ChildComp);
+ });
- @Component({selector: 'nestedchild', template: ''})
- class NestedChildComp {
- }
+ it('should resolve ComponentFactories via ANALYZE_FOR_ENTRY_COMPONENTS', () => {
+ TestBed.resetTestingModule();
+ TestBed.configureTestingModule({declarations: [CompWithAnalyzeEntryComponentsProvider]});
+ let compFixture = TestBed.createComponent(CompWithAnalyzeEntryComponentsProvider);
+ let mainComp: CompWithAnalyzeEntryComponentsProvider = compFixture.componentInstance;
+ let cfr: ComponentFactoryResolver =
+ compFixture.componentRef.injector.get(ComponentFactoryResolver);
+ expect(cfr.resolveComponentFactory(ChildComp).componentType).toBe(ChildComp);
+ expect(cfr.resolveComponentFactory(NestedChildComp).componentType).toBe(NestedChildComp);
+ });
- @Component({selector: 'child', template: '', entryComponents: [NestedChildComp]})
- class ChildComp {
- }
+ it('should be able to get a component form a parent component (view hiearchy)', () => {
+ TestBed.overrideComponent(MainComp, {set: {template: ''}});
- @Component({template: 'comp', entryComponents: [ChildComp]})
- class SomeComp {
- }
+ const compFixture = TestBed.createComponent(MainComp);
+ let childCompEl = compFixture.debugElement.children[0];
+ let childComp: ChildComp = childCompEl.componentInstance;
+ // declared on ChildComp directly
+ expect(childComp.cfr.resolveComponentFactory(NestedChildComp).componentType)
+ .toBe(NestedChildComp);
+ // inherited from MainComp
+ expect(childComp.cfr.resolveComponentFactory(ChildComp).componentType).toBe(ChildComp);
+ });
- const compFixture = tcb.createSync(SomeComp);
- const cf = compFixture.componentRef.injector.get(ComponentFactoryResolver)
- .resolveComponentFactory(ChildComp);
- expect(cf.componentType).toBe(ChildComp);
+ it('should not be able to get components from a parent component (content hierarchy)', () => {
+ TestBed.overrideComponent(MainComp, {set: {template: ''}});
+ TestBed.overrideComponent(ChildComp, {set: {template: ''}});
- expect(console.warnings).toEqual([
- `Component ${stringify(SomeComp)} in NgModule DynamicTestModule uses ${stringify(ChildComp)} via "entryComponents" but it was neither declared nor imported into the module! This warning will become an error after final.`,
- `Component ${stringify(ChildComp)} in NgModule DynamicTestModule uses ${stringify(NestedChildComp)} via "entryComponents" but it was neither declared nor imported into the module! This warning will become an error after final.`
- ]);
- }));
-
-
- it('should resolve ComponentFactories from the same component',
- inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
- const compFixture = tcb.createSync(MainComp);
- let mainComp: MainComp = compFixture.componentInstance;
- expect(compFixture.componentRef.injector.get(ComponentFactoryResolver)).toBe(mainComp.cfr);
- var cf = mainComp.cfr.resolveComponentFactory(ChildComp);
- expect(cf.componentType).toBe(ChildComp);
- }));
-
-
- it('should resolve ComponentFactories via ANALYZE_FOR_ENTRY_COMPONENTS',
- inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
- let compFixture = tcb.createSync(CompWithAnalyzeEntryComponentsProvider);
- let mainComp: CompWithAnalyzeEntryComponentsProvider = compFixture.componentInstance;
- let cfr: ComponentFactoryResolver =
- compFixture.componentRef.injector.get(ComponentFactoryResolver);
- expect(cfr.resolveComponentFactory(ChildComp).componentType).toBe(ChildComp);
- expect(cfr.resolveComponentFactory(NestedChildComp).componentType).toBe(NestedChildComp);
- }));
-
- it('should be able to get a component form a parent component (view hiearchy)',
- inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
- const compFixture =
- tcb.overrideView(
- MainComp,
- new ViewMetadata({template: '', directives: [ChildComp]}))
- .createSync(MainComp);
- let childCompEl = compFixture.debugElement.children[0];
- let childComp: ChildComp = childCompEl.componentInstance;
- // declared on ChildComp directly
- expect(childComp.cfr.resolveComponentFactory(NestedChildComp).componentType)
- .toBe(NestedChildComp);
- // inherited from MainComp
- expect(childComp.cfr.resolveComponentFactory(ChildComp).componentType).toBe(ChildComp);
- }));
-
- it('should not be able to get components from a parent component (content hierarchy)',
- inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
- const compFixture = tcb.overrideView(MainComp, new ViewMetadata({
- template: '',
- directives: [ChildComp, NestedChildComp]
- }))
- .overrideTemplate(ChildComp, '')
- .createSync(MainComp);
- let nestedChildCompEl = compFixture.debugElement.children[0].children[0];
- let nestedChildComp: NestedChildComp = nestedChildCompEl.componentInstance;
- expect(nestedChildComp.cfr.resolveComponentFactory(ChildComp).componentType)
- .toBe(ChildComp);
- expect(() => nestedChildComp.cfr.resolveComponentFactory(NestedChildComp))
- .toThrow(new NoComponentFactoryError(NestedChildComp));
- }));
+ const compFixture = TestBed.createComponent(MainComp);
+ let nestedChildCompEl = compFixture.debugElement.children[0].children[0];
+ let nestedChildComp: NestedChildComp = nestedChildCompEl.componentInstance;
+ expect(nestedChildComp.cfr.resolveComponentFactory(ChildComp).componentType).toBe(ChildComp);
+ expect(() => nestedChildComp.cfr.resolveComponentFactory(NestedChildComp))
+ .toThrow(new NoComponentFactoryError(NestedChildComp));
+ });
});
}