Я открыл вопрос, но на случай, если я что-то не так делаю:
При написании одного теста с использованием jest и redux-mock-store все работает, как ожидалось. Но если я использую mockStore несколько раз (в одном и том же тесте или даже в другом), то действия, отправленные в любом из созданных хранилищ, отправляются несколько раз в наблюдаемом (но только один раз в магазине, как store.getActions () состояния.
Репозиторий репродукции: https://framagit.org/jalil/redux-observable-mock-store-duplicate
tldr;
Это работает :
const store = mockStore();
store.dispatch({ type: 'FOO' }); // -> Observable get 1 FOO action
Это не так:
const store = mockStore();
store2 = mockStore();
mockStore();
store.dispatch({ type: 'FOO' }); // => Observable get 3 FOO actions
Or :
const store = mockStore();
store2 = mockStore();
mockStore();
mockStore();
mockStore();
store.dispatch({ type: 'FOO' }); // -> Observable get 5 FOO actions
... и так далее ...
Я ожидаю, что, поскольку я использую replaceEpic и mockStore, и я использую разные тесты jest, один тест не должен влиять на другой, а один mockStore не должен влиять на другой.
Итак, я ожидаю, что даже если у меня есть несколько тестов, каждый из которых вызывает mockStore (), мои эпики получат правильный поток действий.
Открытые выпуски: