Удалить / отключить эпики от redux-observable

Мы запускаем наши интеграционные тесты в Node, используя энзимный mount и jsdom для рендеринга всего приложения. Для каждого теста создаем новый магазин

return createStore(
    reducer,
    stateShape,
    composeEnhancers(
        applyMiddleware(epicMiddleware, navMiddleware)
    )
);

К сожалению, делая это для нескольких тестов, я заметил, что каждый эпос добавлялся несколько раз, поэтому вместо одного эпического действия действует 10 одинаковых! Есть ли способ запустить очистку в конце каждого теста, чтобы эпики отключались и больше не слушались?

Мы используем redux, redux-observable и enyzme + mocha для тестирования. Спасибо!


person Jake Dluhy    schedule 20.12.2016    source источник


Ответы (1)


Каждый раз, когда вы создаете новый магазин, вам нужно будет создавать новый экземпляр epicMiddleware, который вы ему даете.

В качестве альтернативы существует epicMiddleware.replaceEpic(rootEpic), который позволяет заменить текущий root epic, но я не уверен, что решит вашу проблему в этом случае.

person jayphelps    schedule 20.12.2016