Это продолжение https://github.com/mui-org/material-ui/issues/15726#issuecomment-507293766
У меня есть компонент Registration
, у которого есть кнопка, то есть по умолчанию она отключена (управляется нажатием флажка, принятием условий и положений), ипоказывает всплывающую подсказку при наведении на нее, чтобы принять условия.Ниже приведены результаты теста и сам тест.
√ without consent, cannot go further (190ms)
console.error node_modules/react-dom/cjs/react-dom.development.js:506
Warning: An update to ForwardRef(Popper) inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at ...
in ForwardRef(Popper) (created by Tooltip)
in Tooltip (created by WithStyles(Tooltip))
....
Мой тест (с использованием @testing-library/react
):
jest.useFakeTimers()
it('without consent, cannot go further', () => {
const {getByText} = render(<Registration/>)
const loginButton = getByText(/Log in/)
act(() => {
fireEvent.mouseEnter(loginButton)
jest.runAllTimers()
})
expect(getByText(/Please accept our terms and conditions/)).toBeInTheDocument()
})
Я добавил фальшивые таймеры, как предложено в выпуске GitHub, но это не помогло.