Я пытаюсь написать тестовые случаи для событий клавиатуры для компонента автозаполнения. Функция ниже вызывается, когда пользователь нажимает клавиши и клавиши, чтобы выбрать значения из выпадающего списка:
onKeyDown(event:KeyboardEvent){
if(event.which !== 40 && event.which !== 38){
return;
}
event.stopPropagation();
if (event.which === 40 && this.arrowkeylocation < this.suggestionArray.length - 1) {
// Arrow Down
this.arrowkeylocation++;
this.textSearch = this.suggestionArray[this.arrowkeylocation].title;
} else if (event.which === 38 && this.arrowkeylocation > 0) {
// Arrow Up
this.arrowkeylocation--;
this.textSearch = this.suggestionArray[this.arrowkeylocation].title;
}
}
Ниже приведены контрольные примеры, которые не работают:
it('should call onKeyDown 40 event', () => {
const keyevent = {keyCode: 40};
component.suggestionArray = [suggest,suggest];
inputEl.triggerEventHandler('keydown',keyevent);
expect(component.onKeyDown).toBeTruthy();
expect(component.arrowkeylocation).toEqual(0);
expect(component.textSearch).toEqual(component.suggestionArray[0].title);
});
Здесь arrowkeylocation запускается счетчиком -1, чтобы автоматически заполнить значение текстового поля, когда пользователь нажимает клавишу или клавишу.
SuggestionArray - это автозаполнение раскрывающихся значений.