Я пытаюсь проверить свои действия mapDispatchToProps при отправке асинхронной функции. Я почти перепробовал все возможные решения, которые нашел, и пока ничего не получалось. Я всегда получаю одну и ту же ошибку:
Я получаю эту ошибку:
Ошибка типа: store.dispatch (...). Тогда это не функция
Я попробовал решение, включенное в redux-mock-store https://github.com/dmitry-zaets/redux-mock-store. Я включил свое промежуточное ПО в mockStore, но это не помогло устранить проблему.
Я попробовал решение, предложенное Майклом Пейпером, здесь Тестирование отправленных действий в Redux thunk с Jest .
Мы создали функцию для создания mockStore, поэтому я попытался создать mockStore непосредственно в моем тестовом файле, но они оба вернули одну и ту же ошибку.
Я не могу описать все решения, которые я здесь пробовал, потому что это заняло бы у меня недели, но это дает вам представление.
Вот код для моего теста:
describe('Component async actions', () => {
const middlewares = [thunk, queryMiddleware];
const createMockStore = configureStore(middlewares);
const store = createMockStore();
afterEach(() => {
jest.clearAllMocks();
});
const someData = {};
const expectedActions = {
type: ADD_DATA,
payload: someData
};
it('should handle addData', () => {
return store.dispatch(actions.addData(someData)).then(() => {
expect(store.getActions()[0]).toEqual(expectedAction);
});
});
});
Вот моя карта DispatchToProps:
function mapDispatchToProps(dispatch) {
return {
addData: data => dispatch(addData(data))
.then(({ status }) => {
dispatch(showNotification({ status }));
}),
};
};
Я хотел бы, по крайней мере, иметь возможность добраться до ожидаемой части и исправить это, если в моем тесте есть какая-либо ошибка, но я не могу пройти dispatch (). Then
Опять же, вот ошибка, которую я получаю каждый раз: TypeError: store.dispatch (...). Тогда это не функция
Заранее спасибо!