We are using
TestBed.overrideComponent(CoolComponent, {
set: {
template: '<div id="fake-component">i am the fake component</div>',
selector: 'our-cool-component',
inputs: [ 'model' ]
}
})
to override a component.
The component has a ViewChild which we configure in our ngOnInit method
@Component({
selector: 'our-cool-component',
templateUrl: 'cool.component.html'
})
export class CoolComponent implements OnInit, OnDestroy {
@Input() model: SomeModel
@ViewChild(CoolChildComponent) coolChildComponent;
ngOnInit() {
this.coolChildComponent.doStuff();
}
}
The CoolComponent
in turn lives in a Wrapper
component.
When we call fixture.detectChanges()
on the Wrapper
fixture, this attempts to construct the CoolComponent, but it immediately dies when it calls doStuff() because CoolChildComponent
is undefined.
Is there a way to get at the CoolComponent
to stub its CoolChildComponent
? It doesn't seem like we can get it off the Wrapper
because it's only referenced through the template, not as a property of the component.