lundi 22 avril 2019

Redux Mock Store giving 'Actions must be plain objects. Use custom middleware for async actions.'

I am trying to test some async code in my React app using redux-mock-store.

const configureMockStore = require('redux-mock-store').default;
const thunk = require("redux-thunk").default;

const middlewares = [thunk];
const mockStore = configureMockStore(middlewares);

const dummy = () => {
  // Mock Ajax call
  return new Promise((resolve, reject) => {
      setTimeout(() => resolve({data: 'data'}), 200)
  })
};

describe("Redux Mock Store", () => {
  it("Test Dummy Ajax call", () => {
    const expectedActions = [
      { type: "SUCCESS", payload: "success" },
      { type: "FAILURE", error: { Error: "Error" } }
    ];
    const store = mockStore({});

    store.dispatch(dummy().then(() => {
              expect(store.getActions()).toEqual(expectedActions) 
           }).catch(error => { console.log(error) }))
  });
});

I am using Jest to run this test. I get the following error when running above test Actions must be plain objects. Use custom middleware for async actions. What's wrong here?

Aucun commentaire:

Enregistrer un commentaire