Я пытаюсь проверить создателя этого действия, но он сразу переходит в блок catch, что приводит к
«Не удается прочитать свойство« данные »с неопределенной ошибкой из этой строки» (setAlert (err.response.data.error, "error", "4")) '.
также, когда я закомментирую код внутри блока catch, я получаю эту ошибку
TypeError: Невозможно прочитать свойство 'type' из неопределенного
в этой строке expect(actions[0].type).toEqual("GET_POSTS");
export const getPosts = (skip, limit, previousState = []) => async dispatch => {
const body = JSON.stringify({ skip, limit });
try {
let res = await axios.post("/api/v1/post/posts", body, config);
let newState = [...previousState, ...res.data.posts];
dispatch({
type: GET_POSTS,
payload: newState,
});
} catch (err) {
dispatch(setAlert(err.response.data.error, "error", "4"));
}
};
, и вот мой тестовый файл:
import mockAxios from "axios";
import configureMockStore from "redux-mock-store";
import thunk from "redux-thunk";
import { getPosts } from "../../redux/actions/postActions";
const mockStore = configureMockStore([thunk]);
describe("getPosts action creator", () => {
const store = mockStore({});
it("dispatches GET_POSTS action and returns data on success", async () => {
mockAxios.get.mockImplementationOnce(() =>
Promise.resolve({
posts: [{ id: 1, title: "First Post" }],
})
);
await store.dispatch(getPosts());
const actions = store.getActions();
expect(actions[0].type).toEqual("GET_POSTS");
expect(actions[0].posts[0].title).toEqual("First Post");
});
});