При запуске runSaga на моей функции генератора саги-редукта моя оконная переменная отображается как неопределенная, но мои тестовые файлы передаются. Есть ли способ насмешить переменную окна?
import api from 'my-api';
const getSuburb = () => window.userCookies.selectedSuburb;
function* saga(payload) {
const action = yield take('REQUEST_LIBRARY');
const selectedSuburb = yield call(getSuburb);
const getStateLibraries = yield call(api.getLibraries, selectedSuburb, action.userId);
yield put(loadLibrary(getStateLibraries)
}
При выполнении вышеприведенного кода я получаю список библиотек относительно пригорода, у меня есть другое состояние, содержащее информацию о пригороде, где я могу использовать select для ее получения. Код отлично работает
Модульные тесты для проверки саги с использованием RunSaga
const recordSaga = async function (sagaHandler, initalAction) {
const dispatchedActions = [];
const fakeStore = {
getState: () => (initialState),
dispatch: action => dispatchedActions.push(action),
};
await runSaga(
fakeStore,
sagaHandler,
initalAction,
).done;
return dispatchedActions;
};
describe('Run Saga', () => {
it('should dispatch action libraries', async() => {
const dispatched = await recordSaga(saga, { user_id:2 });
expect(dispatched).toContainEqual(loadLibrarySuccess(someProfile));
}
При выполнении вышеизложенного я получаю selectedSuburb
как неопределенное, потому что window.userCookies.totalSuburbs не определен, есть ли лучший способ для насмешки функции getSuburb