I am mocking useNavigate to test my login page redirect works after login. But I got this reference error.
ReferenceError: Cannot access 'mockedUsedNavigate' before initialization
12 | jest.mock('react-router-dom', () => ({
13 | ...jest.requireActual('react-router-dom'),
> 14 | useNavigate: () => mockedUsedNavigate,
I've looked through the forum and aware it might be the jest.mock()
hoisted to the top but I did define mockedUsedNavigate
before the mock.
// mock useNavigate
const mockedUsedNavigate = jest.fn()
jest.mock('react-router-dom', () => ({
...jest.requireActual('react-router-dom'),
useNavigate: () => mockedUsedNavigate,
}))
code for my login page:
const dispatch = useDispatch()
const navigate = useNavigate()
const handleSubmit = e => {
e.preventDefault()
if (isSignup) {
dispatch(signup(formData, navigate))
} else {
dispatch(signin(formData, navigate))
}
}
However, the same test code works for my other project.