У меня есть функция, закрывающая sidenav на клик фона:
public closeSidenav() {
this.sidenav.toggle();
}
И в HTML:
<mat-sidenav-container (backdropClick)="closeSidenav()">
Я тестирую событие 'BackgroundClick' в следующем тесте:
it('should listen to a backdrop click and toggle the sidenav menu', () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
app.ngOnInit();
fixture.detectChanges();
spyOn(app, 'closeSidenav');
const backdrop = fixture.debugElement.query(By.css('div.mat-drawer-backdrop'));
backdrop.triggerEventHandler('click', null);
expect(app.closeSidenav).toHaveBeenCalled();
});
Тест возвращает положительный результат, но функция не покрывается покрытием кода. Я попытался добавить
spyOn(app.sidenav, 'toggle');
expect(app.sidenav.toggle).toHaveBeenCalled();
без других результатов.
Это последняя функция в файле, и из-за этого я не получаю 100% покрытия.
Просто хочу знать, чего мне не хватает.