Moxios всегда перенастраивается пустым при использовании thunk и axios

Я застрял, пытаясь издеваться над своей функцией axios, которая всегда возвращается пустой:

Войти

export function loginUser(email, password) {
  return function(dispatch) {
    return axios
      .post(`${API_URL}/users/authenticate`, { email, password }, { withCredentials: true })
      .then(response => {
          localStorage.setItem("token", JSON.stringify(response.data.user.id));
          dispatch(setupUser(response.data.user.id));
          dispatch({ type: AUTH_USER });
          dispatch({ type: CLEAR_LOGIN_MESSAGE });
      });
  };
}

Тестовое задание:

describe("async actions", () => {
  beforeEach(() => {
    moxios.install();
  });
  afterEach(() => {
    moxios.uninstall();
  });

  it("logs in", () => {
    moxios.wait(() => {
      const request = moxios.requests.mostRecent();
      request.respondWith({
        status: 200,
        response: {name:"Jill", id:1},
      });
    });

    const expectedActions = [
      { type: AUTH_USER },
      { type: CLEAR_LOGIN_MESSAGE },
      { type: SET_UP_USER, information: {name:"Jill, id:1} },
      { type: REFRESH_DASHBOARD, dashboard: "" },
    ];

    const store = mockStore({});
    return store.dispatch(loginUser({email:"test", password:"test"})).then(() => {
      expect(store.getActions()).toEqual(expectedActions);
    });
  });
});

Я получил:

expect(received).toEqual(expected) // deep equality

- Expected
+ Received

- Array [
-   Object {
-     "type": "AUTH_USER",
-   },
-   Object {
-     "type": "CLEAR_LOGIN_MESSAGE",
-   },
-   Object {
-     "information": 
-       "id": "1",
-       "name": "Jill",
-     },
-     "type": "SET_UP_USER",
-   },
-   Object {
-     "dashboard": "",
-     "type": "CLEAR_DASHBOARD",
-   },
- ]
+ Array []

Почему возвращается пустой?


person lost9123193    schedule 02.01.2020    source источник


Ответы (1)


В своей депеши вы написали:

loginUser({email:"test", password:"test"})

Однако ваше действие не ожидает объекта, оно ожидает 2 параметра

export function loginUser(email, password) {

Я заставил его работать, назвав его так:

loginUser("test", "test")

Надеюсь, кто-то сочтет это полезным

person user1645011    schedule 24.04.2020