TypeError: невозможно прочитать свойство undefined в тестах Saga

Я запускаю тесты с использованием шутки для моего кода реакции, который также включает саги. Все мои тесты проходят, но я получаю интересный console.error, как показано ниже. В чем ошибка следующего кода?

Вот моя консоль при запуске тестов

console.error node_modules/redux-saga/lib/internal/utils.js:240
  uncaught at rootSaga at rootSaga 
   at rootSaga 
   TypeError: Cannot read property 'FETCH_ORDERS_REQUEST' of undefined
      at FETCH_ORDERS_REQUEST (..../redux/sagas.js:38:25)
      at Object.<anonymous>.exports.default.next (<anonymous>)
      at next (.../node_modules/redux-saga/lib/internal/proc.js:322:27)
      at proc (..../node_modules/redux-saga/lib/internal/proc.js:281:3)
      at resolveIterator (.../node_modules/redux-saga/lib/internal/proc.js:467:5)
      at runEffect (/.../node_modules/redux-saga/lib/internal/proc.js:443:178)

sagas.js:

import { call, put, takeEvery, all } from 'redux-saga/effects';
import * as loadboardAPI from 'api/loadboard';
import * as ordersAPI from 'api/orders';
import * as actions from './actions';
import * as types from './types';

export function* fetchOrders({ query }) {
    try {
        const response = yield call(loadboardAPI.searchOrders, adaptedQuery);
        const orders = response.data.objects;

        yield put(actions.fetchOrdersSuccess(orders));
    } catch (error) {
        yield put(actions.fetchOrdersFailure(error));
    }
}
...
        export default function*() {
        yield all([
            takeEvery(types.FETCH_ORDERS_REQUEST, fetchOrders),
            ....
        ]);
    }

Неисправная часть sagas.test.js

import { all, call, put, takeEvery } from 'redux-saga/effects';
import * as loadboardAPI from 'api/loadboard';
import * as actions from './actions';
import * as types from './types';
import * as sagas from './sagas';

describe('default', () => {
        const saga = sagas.default();
        const output = saga.next().value;
        const expected = all([
            takeEvery(types.FETCH_ORDERS_REQUEST, sagas.fetchOrders),
        ]);

        expect(output).toEqual(expected);
    });

У меня была такая же ошибка, и она исчезла после того, как я удалил перекрестные ссылки из файлов саги. Т.е. один из моих файлов сделал export const blaBla = '', я переместил его из саг (в общее место), и эта ошибка исчезла. Однако я не уверен, в чем корень этого.

Alex 29.10.2018 12:40

перекрестные ссылки определенно могут вызвать аналогичные проблемы. У меня возникли проблемы с хранилищем redux, пытающимся загрузиться во время теста и вызывающим неопределенные ошибки. тесты все еще выполняются и успешно проходят / не проходят, но это создает много шума в журналах

worc 23.08.2019 01:29
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
3
2
1 520
0

Другие вопросы по теме