Я использую axios-mock-adapter для насмешки после звонка axios.Я могу убедиться в том, что почтовый звонок выполняется, добавив:
console.log(mock.handlers.post);
в тестовом коде.Но по какой-то причине остальные операторы обещания .then () не работают.
Вот мой тестовый код:
test('Should redirect to login when successful user register', async () => {
const historyMock = { push: jest.fn() };
const mock = new MockAdapter(axios);
mock.onPost('/users/register').reply(200, {
name: user.name,
email: user.email,
id: user._id, // eslint-disable-line no-underscore-dangle
});
await registerUser(user, historyMock);
expect(historyMock.push).toHaveBeenCalled();
});
, а вот фактическая функция:
// Register new user
export const registerUser = (user, history) => (dispatch) => {
axios
.post('/users/register', user)
.then(res => history.push('/login'))
.catch((err) => {
dispatch({
type: GET_ERRORS,
error: err.response.data,
});
});
};
Я также получаю эту ошибку от Jest при запуске тестов:
Expected mock function to have been called, but it was not called.