Когда я отправляю форму, я перенаправляю пользователя на другой маршрут.
Я использую библиотеку реагирующего тестирования, и он жалуется, что:
Cannot read property 'push' of undefined
Even хотя я уже завернул свой компонент в MemoryRouter
Я также попытался BrowserRoter
, HashRouter
, но все еще те же проблемы ... если это не push
это history
, что он отсутствует .
Есть идеи?
test('creates a reminder when submiting the form if all fields are filled', async () => {
const { getByTestId } = render(
<BrowserRouter>
<ReminderProvider>
<AddReminder />
</ReminderProvider>
</BrowserRouter>
)
waitFor(() => expect(getByTestId('categories-menu')).toBeTruthy())
waitFor(() => fireEvent.change(getByTestId('categories-menu'), { target: { value: categories[0].id } }))
waitFor(() => fireEvent.change(getByTestId('providers-menu'), { target: { value: providers[0].company.companyName } }))
fireEvent.change(getByTestId('title'), { target: 'My reminder' })
waitFor(() => fireEvent.change(getByTestId('date'), { target: '04/01/2020' }))
fireEvent.change(getByTestId('notice-period'), { target: 2 })
fireEvent.click(getByTestId('submit'));
waitFor(() => expect(getByTestId('overview')).toBeTruthy())
})
})
В моем компоненте:
const onSubmit = e => {
e.preventDefault()
history.push('/overview')
createReminder()
}