在另一个异步操作中测试Redux异步redux操作

时间:2019-01-04 09:19:35

标签: javascript reactjs unit-testing testing redux

正如标题所述,我正在尝试测试另一个异步操作。

我有一个登录操作,该操作成功调度了login_success(只是将加载切换为false),将令牌保存在localStorage中,还调用了get_current_user,这引起了另一个网络请求来获取用户根据ID。

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,因此返回失败的测试,没有模拟的提取请求。我不知道在哪里模拟该请求,该请求在第一个请求之后尝试过,然后在那儿阻塞,但这是行不通的。

0 个答案:

没有答案