В моем приложении React и Redux я пытаюсь запустить мой первый тест с использованием Jest & TypeScript, и я не могу его успешно запустить. Для ясности само приложение работает без ошибок и работает хорошо. Похоже, я неправильно настраиваю ответ Axe ios. Когда я запускаю Jest тесты, получаю следующую ошибку:
Действия могут не иметь неопределенного свойства "type". Вы неправильно написали константу? ...
Создатель действия:
export const fetchBoats = (
userAuthToken: string,
filterValues: BoatSearchFilterParams = {},
page: number = 1
) => (dispatch: any) => {
const filterParams: string = setFilterParamsAsString(filterValues);
const url = `${GET_BOATS}?${filterParams}&page=${page}`;
return dispatch({
types: [FETCH_REQUEST, FETCH_SUCCESS, FETCH_FAILURE],
promise: axios({
method: "get",
url: url,
headers: {
Authorization: `Token ${userAuthToken}`
}
})
});
};
Мой тестовый файл в его текущем состоянии без утверждений:
import configureStore from "redux-mock-store";
import thunk from "redux-thunk";
import { fetchResults } from "./boats";
import axios from "axios";
const mockedAxios = axios as jest.Mocked<typeof axios>;
const mockStore = configureStore([thunk]);
const store = mockStore();
jest.mock("axios");
const respObj = {
results : ["a", "b", "c", "d"]
};
describe("Test the 'Boats' action", () => {
beforeEach(() => {
store.clearActions();
});
it("should have data structure matching the expected structure", () => {
const respObj = { data: resp };
mockedAxios.get.mockResolvedValue(respObj);
const ac: any = store.dispatch(fetchBoats("abcabcabc"));
// expect(ac).toContain(); commented out.
});
});
Как я могу заставить создателя действия вернуть ответ respObj
и затем подтвердить его?
РЕДАКТИРОВАТЬ :
Появляется некоторая путаница в том, как работает создатель действия. У меня есть пользовательское промежуточное ПО, которое перехватывает действие с подписью как создатель этого действия выше. Это действие действительно и работает очень хорошо:)