https://medium.com/@thejasonfile/fetch-vs-axios-js-for-making-http-requests-2b261cdd3af5

ершенно новичок в Jest и, по общему признанию, не являюсь экспертом в тестировании асинхронного кода ...

У меня простойFetch помощник я использую:

export function fetchHelper(url, opts) {
    return fetch(url, options)
        .then((response) => {
            if (response.ok) {
                return Promise.resolve(response);
            }

            const error = new Error(response.statusText || response.status);
            error.response = response;

            return Promise.reject(error);
        });
    }

И реализовать это так:

export function getSomeData() {
    return (dispatch) => {
        return fetchHelper('http://datasource.com/').then((res) => {
            dispatch(setLoading(true));
            return res.json();
        }).then((data) => {
            dispatch(setData(data));
            dispatch(setLoading(false));
        }).catch(() => {
            dispatch(setFail());
            dispatch(setLoading(false));
        });
    };
}

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

Раньше это было довольно легко сsinon.spy(), но я не могу понять, как повторить это в Jest. В идеале я бы хотел, чтобы мой тест выглядел примерно так:

expect(spy.args[0][0]).toBe({
  type: SET_LOADING_STATE,
  value: true,
});


expect(spy.args[1][0]).toBe({
  type: SET_DATA,
  value: {...},
});

Заранее спасибо за любую помощь или совет!

Ответы на вопрос(4)

Ваш ответ на вопрос