Тестовые случаи с жасмином в Angular HostListener - PullRequest
0 голосов
/ 06 сентября 2018

Я новичок в Жасмин и пытаюсь написать несколько тестовых примеров для событий клавиатуры для компонента автозаполнения. Ниже приведены подробности:

Функции:

@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();        
});
...