J'écris des tests pour redimensionner des épopées observables avec du jasmin. Lors de l'exécution de l'un des tests "seul" (avec fit(...)
), le test réussit, mais lors de son exécution avec un autre test (avec it(...)
), il échoue car les actions sont réparties dans le mauvais ordre. Toute aide appréciée!rxjs/redux observable Actions distribuées dans le mauvais ordre lors de l'exécution de plusieurs tests
Il y a quelques épopées, donc je ne vais pas les publier à moins que ce soit nécessaire.
Ceci est (un peu) le fichier de test:
const epicMiddleware = createEpicMiddleware(combinedEpics)
const mockStore = configureMockStore([epicMiddleware])
describe('my test',() => {
let store
beforeEach(() => {
store = mockStore(...)
jasmine.Ajax.install()
})
afterEach(() => {
jasmine.Ajax.uninstall()
epicMiddleware.replaceEpic(combinedEpics)
})
// test 1 passes
it("test 1",() => {
jasmine.Ajax.stubRequest("url-1").andReturn({
status: 200,
responseText: JSON.stringify({ ... })
})
store.dispatch(initializePage())
expect(store.getActions()).toEqual([
{ type: INITIALIZE_PAGE },
{ type: MY_ACTION1 },
{ type: INITIALIZED_PAGE }
])
})
// test 2 passes with `fit` but not with `it`
it("test 2",() => {
jasmine.Ajax.stubRequest("url-2").andReturn({
status: 200,
responseText: JSON.stringify({ ... })
})
store.dispatch(initializePage())
expect(store.getActions()).toEqual([
{ type: INITIALIZE_PAGE },
{ type: MY_ACTION2 },
{ type: INITIALIZED_PAGE }
])
/**
* With `fit` the actions come in the order [INITIALIZE_PAGE, MY_ACTION2, INITIALIZED_PAGE]
* With `it` the actions come in the order [INITIALIZE_PAGE, INITIALIZED_PAGE, MY_ACTION2]
*/
})
})