Я новичок в Жасмин и пытаюсь написать несколько тестовых примеров для событий клавиатуры для компонента автозаполнения. Ниже приведены подробности:
Функции:
@HostListener('document:click', ['$event', '$event.target'])
public onClick(event: MouseEvent, targetElement: HTMLElement): void {
if (!targetElement) {
return;
}
const clickedInside = this._elementRef.nativeElement.contains(targetElement);
if (!clickedInside) {
this.arrowkeylocation= -1;
this.clickOutside.emit(event);
}
}
Выше функция проверяет, не щелкает ли кто-нибудь за пределами текстового поля, а затем закрывает раскрывающийся список автозаполнения
Ниже работает тестовый пример, где inputEl - текстовый элемент:
it('should call clickOutside.emit not called', () => {
spyOn(component.clickOutside, 'emit');
inputEl.triggerEventHandler('keydown',null);
expect(component.clickOutside.emit).not.toHaveBeenCalled();
});
Ниже контрольный пример не работает. Здесь submitEl - кнопка поиска
it('should call clickOutside.emit not called', () => {
spyOn(component.clickOutside, 'emit');
submitEl.triggerEventHandler('keydown',null);
expect(component.clickOutside.emit).toHaveBeenCalled();
});