Как тестировать payload в post запросах redux-saga
Недавно я начал изучать тесты для react-saga и нигде не увидел как делать запросы fetch с каким то payload
Есть вот такой воркер
try {
yield put({type: "SET_CURRENT_COMPETITION_LOADING", payload: true});
const response: Response = yield call(getCompetitionsData.getCompetitionById, action.payload); // Этот payload (id: number)
const data: ICompetitions | IApiRequestError = yield call([response, response.json]);
if("error" in data || "errorCode" in data) {
throw new Error(`Произошла ошибка ${data.error ? data.error : data.errorCode}: ${data.message}`);
}
yield put({type: "SET_CURRENT_COMPETITION", payload: data});
yield put({type: "SET_CURRENT_COMPETITION_LOADING", payload: false});
} catch (error: any) {
yield put({type: "SET_CURRENT_COMPETITION_ERROR", payload: error.message});
yield put({type: "SET_CURRENT_COMPETITION_LOADING", payload: false});
}
сам тест:
it("get currnet competition succes", () => {
const generator = getCurrentCompetition();
expect(generator.next().value).toEqual(put({type: "SET_CURRENT_COMPETITION_LOADING", payload: true}));
const payload = 1;
expect(generator.next(payload).value).toEqual(call(getCompetitionsData.getCompetitionById,Что передавать сюда??))
})
call возвращает
"action": Object {
+ "payload": "Cannot read properties of undefined (reading 'payload')",
+ "type": "SET_CURRENT_COMPETITION_ERROR",
},
Как правильно протестировать post запрос с payload??
Ответы (1 шт):
Автор решения: EzioMercer
→ Ссылка
В самой документации достотчно подробно описано как тестировать различные кейсы в Redux-Saga. Можете ознакомьтся здесь