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.