Интеграционное тестирование с редукс-петлей, шуткой, энзимом и моксиосом
Мне нужно сделать интеграционный тест в избыточном цикле
Я использовал руководство по тестированию редукторов, предоставленное на их сайте, чтобы протестировать мой исходный код, но сейчас я хочу провести интеграционный тест.
import { appStore } from '../store';
import moxios from 'moxios';
...
describe('Init', () => {
beforeEach(() => {
moxios.install();
});
afterEach(() => {
moxios.uninstall();
});
test('Store is updated correctly', () => {
const expectedState = {
}
moxios.wait(() => {
const request = moxios.requests.mostRecent();
request.respondWith({
status: 200,
response: {
data:
{
z: [[1, 2], [3, 4]]
}
}
})
});
return appStore.dispatch(init('1234567'))
.then((res: any) => {
const newState = appStore.getState();
expect(newState).toBe(expectedState);
});
});
});
Мой редуктор выглядит так:
return loop ( {...state}, Cmd.list(callAFunc(action.payload.param, callAnAction)) );
Я ожидаю, что тест не пройден, но получаю следующее: Timeout - асинхронный обратный вызов не был вызван в течение времени ожидания, указанного в jasmine.DEFAULT_TIMEOUT_INTERVAL.
дела console.log(appStore.dispatch(init('1234567')))
в тесте возвращает ожидающее обещание, но никогда не выполняет.then. Я знаю, что делаю что-то не так, и я использовал этот учебник https://redux-loop.js.org/docs/tutorial/Testing.html для тестирования моего редуктора, но мне нужны хедс-апы для интеграционного теста.