Я пытаюсь реализовать тесты для моего хука, который в зависимости от типа ключа меняет свое значение.
Конечно, перехват работает, но тесты нет ..
Я не могу dispatchEvent
на объекте окна в Жасмин!
Я получаю эту ошибку:
![enter image description here](https://i.stack.imgur.com/1cyXP.png)
Код моего хука (конечно, я упростил его для этого вопроса):
export function useHook(initialState = false): boolean {
const [a, setA] = useState(initialState)
useEffect(() => {
const fn = () => {
setA(!a)
}
window.addEventListener('keydown', fn)
return () => window.removeEventListener('keydown', fn)
}, [a])
return a
}
и тестирует код:
import { renderHook } from '@testing-library/react-hooks'
describe('Describe', () => {
it(`It`, () => {
const { result } = renderHook(() => Keyboard.useHook())
window.dispatchEvent(new KeyboardEvent('keydown'))
expect(result.current).toBe(false)
})
})
Должен ли я каким-то образом насмехаться над объектом окна? Может быть, есть лучшее решение для dispatchEvent (особенно keydown
)?
Спасибо за любую помощь ..:)