Тестирование React API с помощью Jest

#reactjs #api #unit-testing #jestjs

#reactjs #API #модульное тестирование #jestjs

Вопрос:

В проекте, над которым я работаю, серверное соединение осуществляется через restclient.js файл, который при упрощении выглядит следующим образом:

 const someFunctionality = {
    method1: () => fetch(...)
}

const someOtherFunctionality = {
    method2: () => Promise(...)
}

const yetAnotherFunctionality = {
    method3: () => { return environment.something() }
}

const environment = {
    something: () => document.querySelector(...).getAttribute(...)
}
  

При написании модульных тестов для компонента, который использует restclient, я попытался издеваться над ним следующим образом:

 jest.mock('../restclient', () => ({
    __esModule: true,
    restclient: { yetAnotherFunctionality: {method3: jest.fn(() => {return 'some value'}) } }
}));
  

Однако тесты завершаются неудачей на этом самом этапе:

 TypeError: Cannot read property 'yetAnotherFunctionality' of undefined
> const id = restclient.yetAnotherFunctionality.method3()
  

Чего мне не хватает? Каков был бы правильный способ издеваться над таким API с помощью Jest?

Комментарии:

1. Не могли бы вы, пожалуйста, добавить дополнительную информацию?

2. Какая информация?