У меня проблемы с тестированием саг, использующих эффект getContext
. У меня есть сага, которая выглядит так:
function* inventorySaga(payload) {
try {
const api = yield getContext("api");
const inventory = yield api.getInventory(payload);
yield put(getInventorySuccess(inventory));
} catch (e) {
yield put(getInventoryFail("Error"));
}
}
Когда я проверяю ее, api
не определено. Как я могу издеваться над этим значением? Я хотел бы использовать подход runSaga
вместо пошагового подхода generator.next()
, если это возможно. Вероятно, это будет выглядеть примерно так:
test('should get inventory', async () => {
const dispatched = [];
const dummyInventory = { books: 1 };
await runSaga({
dispatch: (action) => dispatched.push(action),
context: { ??? }
}, inventorySaga, payload);
// test context ???
expect(dispatched[0]).toEqual(getInventorySuccess({ books: 1 }));
});