Получение теста создателя действий Async для прохождения Redux - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть асинхронный actionCreator, который отправляет вызов API - в случае успеха он дает ответ при неудаче - он терпит неудачу. Я пишу тесты для вызова, но не могу получить тест для отправки правильного ответа.

Вот функция, которую я тестирую - каждая отправка отправляет действие.

const getStudyData = () => {
  return async dispatch => {
  try {
    dispatch(fetchStudiesBegin());
    const res = await  DataService.fetchAllStudyData();
    dispatch(fetchStudiesSuccess(res))
  }
  catch (err) {
    dispatch(fetchStudiesError(err))
  }
  }
} 


const fetchStudiesBegin = () => ({
  type: types.FETCH_STUDIES_BEGIN
});

const fetchStudiesSuccess = studies => ({
  type: types.FETCH_STUDIES_SUCCESS,
  payload: { studies }
});

const fetchStudiesError = error => ({
  type: types.FETCH_STUDIES_ERROR,
  payload: { error }
});

Это тест, который я написал - однако он дает мне ответ ОШИБКА вместо ответа УСПЕХ

import configureStore from 'redux-mock-store';
const middlewares = [ thunk ];
const mockStore = configureStore(middlewares);
import fetchMock from 'fetch-mock';

  describe('Test thunk action creator for the API call for studies ', () => {
    it('expected actions should be dispatched on successful request', () => {
      const store = mockStore({});
      const expectedActions = [
        types.FETCH_STUDIES_BEGIN,
        types.FETCH_STUDIES_SUCCESS
      ];

      // Mock the fetch() global to always return the same value for GET
      // requests to all URLs.
      fetchMock.get('*', { response: 200 });

      return store.dispatch(dashboardOperations.getStudyData())
        .then(() => {
          const actualActions = store.getActions().map(action => action.type);
          expect(actualActions).toEqual(expectedActions);
        });

      fetchMock.restore();
    });

  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...