Редьюсеры (из мира redux, да и вообще) тестируются очень удобно. Ваш тест в общем виде выглядит так:
1) есть начальное состояние
2) есть action с такими-то данными (или без)
3) есть конечное состояние (заданное вами, вручную, ожидаемое состояние)
4) вызываю reducer(с action указанным в пункте 2) и сравниваю результат с пунктом 3
Банальный тест. Проверяем, что устанавливается isFetching в true в момент запроса.
// кусочек из reducer'a
case GET_DETAILED_FILES_REQUEST:
return {
...state,
isFetching: true,
}
...
// код из теста
it('GET_DETAILED_FILES_REQUEST', () => {
const action = {
type: GET_DETAILED_FILES_REQUEST,
}
const nextState = reducer(initialState, action) // где reducer = ваш настоящий редьюсер, например " import reducer from '../../src/reducers/detailedFiles' "
expect(nextState).to.deep.equal({
...initialState,
isFetching: true,
})
})
По тестированию редьюсеров, в
документации есть все что нужно, чтобы начать.