У меня есть этот простой метод, который нужно проверить:
public onLayerContainerClick(event: Event): void {
event.stopPropagation();
event.preventDefault();
if (event.srcElement.classList.contains('dpm-info__layerContainer')) {
this.closeInfoLayer(event);
}
}
Моя цель на самом деле состоит в том, чтобы увеличить покрытие кода для компонента. Если я тестирую так:
it( 'should close on info container click', () => {
spyOn( component, 'onLayerContainerClick' );
const el: DebugElement = fixture.debugElement.query( By.css( '.dpm-info__layerContainer' ) );
el.triggerEventHandler( 'click', null );
expect( component.onLayerContainerClick ).toHaveBeenCalled();
} );
тест в порядке, но в Стамбуле написано «функция не покрыта». Итак, я думаю, мне нужно явно вызвать функцию? Для этого мне нужен полный объект события, включая (как минимум) свойство srcTarget. Как определить такое событие в модульном тесте?