Как можно смоделировать множественный запрос get ax ios в модульном тесте Jest для асинхронного действия c, которое вызывает еще несколько асинхронных c действий? - PullRequest
1 голос
/ 19 марта 2020

Я использую макет топора ios для тестирования редукционных действий в моем приложении. Я застрял с проблемой тестирования функции действия asyn c, которая отправляет запрос POST и отправляет еще несколько асин c действий, которые отправляют свои собственные запросы GET. Как мне справиться с этим с помощью макетов?

Действия:

export function recordStepCompleted(step, isNewLevel = true) {
    return function (dispatch) {
        // setUserTaskComplete() action sends `POST` request
        dispatch(setUserTaskComplete(step))
            .then(() => isNewLevel && dispatch(rewardsActions.getUserLevels()));
        dispatch({
            type: types.RECORD_STEP_COMPLETED,
            payload: { step }
        });
    };
}
export function getUserLevels() {
    return function (dispatch, getState) {
        dispatch(getAchievements()) // it sends GET request
            .then(achievements => {
                dispatch({ type: types.GET_LEVELS.REQUEST });
                return api.getLevels() // it also sends GET request
                    .then(res => {
                        //......
                        dispatch({
                            type: types.GET_LEVELS.SUCCESS,
                            payload: { levels: { ...res.data, ... } }
                        });
                    })
                    .catch(error => /*....*/);
            });
    };
}

Итак, в общем, мне нужно смоделировать три разных запроса для проверки действия recordStepCompleted, но я не не знаю как. Пожалуйста, помогите мне с этим. Заранее спасибо!

...