axios-mock-adaptor, кажется, не выполняет обещаний - PullRequest
0 голосов
/ 11 февраля 2019

Я использую 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.
...