Как правильно протестировать thunk, который называется другим thunk, с mock-store - PullRequest
0 голосов
/ 06 марта 2019

Упрощенная версия моего грома:

fetchUserThunk = () => async (dispatch) => {
dispatch(requestUserStart());
const payload = await getUserAPIrequest();
dispatch(requestUserSuccess(payload));
dispatch(fetchHobbies(payload.userId));

};

fetchHobbiesThunk = (userId) => async (dispatch) => {
    dispatch(requestUserHobbiesStart());
    const payload = await getUserHobbiesAPIrequest(userId);
    dispatch(requestUserHobbiesSuccess(payload));
};

У меня есть следующий тест:

it('test', async () => {
    const store = mockStore({});
    store.dispatch(fetchUserThunk());

    const expectedActions = [
        requestUserStart(),
        requestUserSuccess(userObj),
        fetchHobbiesThunk(userObj.id)
    ];
    expect(store.getActions()).to.deep.equal(expectedActions);
});

Сбой, потому что третье действие - requestUserHobbiesStart. Как правильно проверить этот блок?

1 Ответ

0 голосов
/ 07 марта 2019

Я закончил рефакторинг к тому, что было предложено здесь - https://github.com/reduxjs/redux/issues/1676#issuecomment-215413478

...