Интеграционное тестирование с редукс-петлей, шуткой, энзимом и моксиосом

Мне нужно сделать интеграционный тест в избыточном цикле

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

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 для тестирования моего редуктора, но мне нужны хедс-апы для интеграционного теста.

0 ответов

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