У меня есть этот простой компонент.
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'app-spinner',
template: `
<ng-container *ngIf="loading; else valueTpl">
<strong>loading....</strong>
</ng-container>
<ng-template #valueTpl>
<span>{{ value }}</span>
</ng-template>
`
})
export class SpinnerComponent {
@Input() loading = false;
@Input() value!: string;
}
при запуске он работает хорошо, но когда я go для проверки теста не проходит
it('should show spinner when loading true', () => {
component.loading = true;
fixture.detectChanges();
const strong = debugElement.query(By.css('strong'));
const el: HTMLElement = strong.nativeElement;
expect(el).not.toBeNull();
});
Что правильно способ тестирования компонента с помощью ChangeDetectionStrategy.OnPu sh?
ОБНОВЛЕНИЕ
Ожидание лучшего решения, с которым я работал:
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [SpinnerComponent]
})
.overrideComponent(SpinnerComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
})
.compileComponents();
}));