У меня есть данный код redux который запускает action при условии если что-то лежит в store:
export function sendMessage (payload) {
return dispatch =› {
if (store.getState().mainReducer.name != null) {
return api.getResponse(payload)
.then (()=› {
dispatch(SetName());
});
и я написал test case на enzyme и jest который проверяет запускается ли action:
const middlewares = [ thunk ];
const mockStore = configureStore(middlewares);
const initialState = {
mainReducer: {
name:
"John Doe"
}
}
const store = mockStore(initialState);
store.getState = jest.fn().mockReturnValue(initialState)
let mockSetName = jest.spyOn(IndexActions,
'SetName') .mockImplementation(() =› {return {type: {}}});
afterEach (() =› {
jest.clearAllMocks();
});
test ('send request to API', async () =› {
await store.dispatch(sendMessage("get User"));
expect (mockSetName).toHaveBeenCalled() ;
})
в коде теста я пытался добавить состояние name в initial store, но все равно выводит ошибку что name не найдено. как мне правильно добавить name что бы условие было верно?