event.persist не является функцией - JEST & Enzyme - PullRequest
0 голосов
/ 09 мая 2019

Я использую React 16.3 с JEST и Enzyme в качестве моих тестовых утилит, у меня есть вход, где, когда пользователь вводит электронную почту и размывает поле, вызывается функция (handleInputBlur).В этой функции я обновляю состояние (setState) и setState() callback, я вызываю другую функцию и передаю событие, которое было передано handleInputBlur изначально.

Теперь, как я понимаю, так как setStateЯвляется асинхронным React не позволяет передать событие в обратный вызов setState.Итак, я добавил event.persist(), чтобы сохранить событие.Пока все работает хорошо.

Когда я пытаюсь запустить написанный мной JEST-тест и имитировать blur на входе, он вызывает функцию, но выдает ошибку:

TypeError: e.persist is not a function

Я не могупонять, что именно нужно сделать, чтобы обойти эту проблему.

1 Ответ

1 голос
/ 09 мая 2019

Когда вы моделируете событие, вы можете передать ему фиктивный объект события, например

wrapper.find('a').simulate('blur', { persist: jest.fn()});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...