Тестирование асинхронного редукса Redux внутри другого асинхронного действия - PullRequest
0 голосов
/ 04 января 2019

как видно из заголовка, я пытаюсь проверить одно асинхронное действие в другом ..

У меня есть действие входа в систему, которое в случае успеха отправляет login_success (просто переключает загрузку в false), сохраняет токен в localStorage, а также вызывает get_current_user, что делает еще один сетевой запрос для получения пользователя на основе идентификатора.

test('login dispatches login, login success and get current user if everything is okay', () => {

    let expectedActions = [
        SIGN_IN,
        SIGN_IN_SUCCESS,
        GET_CURRENT_USER,
        GET_CURRENT_USER_SUCCESS
    ]

    window.fetch = jest.fn().mockImplementationOnce(() =>
        Promise.resolve({ status: 200, ok: true, json: () => Promise.resolve({ user: { user: { _id: "123" }, token: "faketoken", message: "Logged in" } }) }))

    return store.dispatch(signIn({ username: "fakeone", password: "anotherfake" })).then(() => {

        const actualActions = store.getActions().map(actions => actions.type)

        expect(actualActions).toEqual(expectedActions)

    })
})

В настоящее время возвращается неудачный тест, так как он не отправляет get_current_user_success, нет запроса на получение поддельной выборки.Я не могу понять, где смоделировать этот запрос, пробовал после первого запроса, затем в блоке, но он не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...