const openSpy = jest.spyOn(component.resultsDropdown, 'open')
component.searchInputKeyDown(new KeyboardEvent('keydown', { key: 'Enter' }))
expect(openSpy).toHaveBeenCalled()
+
+ component.searchInputKeyDown(
+ new KeyboardEvent('keydown', { key: 'ArrowDown' })
+ )
+ expect(component['currentItemIndex']).toBe(0)
+ const closeSpy = jest.spyOn(component.resultsDropdown, 'close')
+ component.dropdownKeyDown(new KeyboardEvent('keydown', { key: 'Escape' }))
+ expect(closeSpy).toHaveBeenCalled()
})
it('should search on query debounce', fakeAsync(() => {
event.preventDefault()
event.stopImmediatePropagation()
this.primaryButtons.get(this.domIndex).nativeElement.focus()
+ } else if (event.key === 'Escape') {
+ event.preventDefault()
+ event.stopImmediatePropagation()
+ this.reset(true)
+ this.searchInput.nativeElement.focus()
}
}
}
onButtonKeyDown(event: KeyboardEvent) {
// prevents ngBootstrap issue with keydown events
if (
- !['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(event.key)
+ !['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Escape'].includes(
+ event.key
+ )
) {
event.stopImmediatePropagation()
}