Диспетчеризация события нажатия клавиш в Window Object - Жасмин - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь реализовать тесты для моего хука, который в зависимости от типа ключа меняет свое значение.

Конечно, перехват работает, но тесты нет ..

Я не могу dispatchEvent на объекте окна в Жасмин!

Я получаю эту ошибку:

enter image description here

Код моего хука (конечно, я упростил его для этого вопроса):

   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)?

Спасибо за любую помощь ..:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...