У меня есть функция, которая обнаруживает нажатие клавиши, и если клавиша нажата = escape, функция срабатывает.
У меня проблемы с подделкой самого KeyboardEvent для передачи.
Я видел это сообщение , но реализация этого решения дает следующий вывод (я console.logged самого события):
LOG: KeyboardEvent {isTrusted: false}
Chrome 68.0.3440 (Mac OS X 10.13.6) ConfirmationComponent должен вызывать onDeny при нажатии кнопки ESCAPE FAILED
Ожидаемый шпион onDeny был вызван.
component.ts
@HostListener('window:keyup', ['$event'])
keyEvent(event: KeyboardEvent) {
console.log(event);
// Press escape - close dialog with simulated 'cancel' click
if (event.code === 'Escape') {
this.onDeny();
}
}
onDeny() {
// something is done here
}
test.ts
it('should autofocus on cancel button on init', () => {
spyOn(component, 'onDeny');
component.keyEvent(ESCAPE);
expect(component.onDeny).toHaveBeenCalled();
});