как видно из заголовка, я пытаюсь проверить одно асинхронное действие в другом ..
У меня есть действие входа в систему, которое в случае успеха отправляет 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
, нет запроса на получение поддельной выборки.Я не могу понять, где смоделировать этот запрос, пробовал после первого запроса, затем в блоке, но он не работает.