Тестирование эффекта в редукс-саге с использованием run saga - PullRequest
0 голосов
/ 10 января 2019

У меня есть сага о редуксе, как это

export default function* userSaga() {
    yield all([takeEvery(UserTypeKeys.SET_AUTHENTICATION_STATUS, fetchAuthenticationStatus)]);
}

Я хотел бы проверить, что когда UserTypeKeys.SET_AUTHENTICATION_STATUS вызывается функция fetchAuthenticationStatus.

Итак, в моем тесте на приставку у меня есть это.

test('Test Root Saga', async () => {
    const saga = runSaga(mockStore, userSagas.default);
    const fetchAuthStatusMock = jest.spyOn(userSagas, 'fetchAuthenticationStatus');
    mockStore.dispatch({ type: UserTypeKeys.SET_AUTHENTICATION_STATUS });
    saga.cancel();
    await saga.done;
    expect(fetchAuthStatusMock.mock.calls.length).toBe(1);
});

Однако, похоже, это не работает. Как правильно тестировать что-то подобное? Я знаю, что могу просто вызвать функцию генератора и проверить значение .next (), но это похоже на реализацию тестирования, а не на функциональность.

...