@uabylbekov

Как добавить состояние в enzyme тесте для if условия?

У меня есть данный код 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 что бы условие было верно?
  • Вопрос задан
  • 13 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы