Как проверить вложенные обещания setState внутри вызова выборки в componentDidMount - PullRequest
0 голосов
/ 25 апреля 2020

Я видел похожие решения по переполнению стека, но они обычно включали перемещение вызова выборки в его собственную функцию и вызов его внутри componentDidMount. Но как бы я go проверил вызов выборки внутри componentDidMount, который устанавливает состояние с помощью jest / энзима? Данные, полученные из вызова API, могут иметь любое произвольное значение.

Вот мой код для componentDidMount

 async componentDidMount() {
     await fetch(
       "api call",
       {
         method: "GET",
       }
     )
       .then((res) => res.json())
       .then(
         (result) => {
           const jsonData = JSON.parse(result);
           this.setState({
             modalOpen: "",
             eventNameState: jsonData.eventNameState,
             event: jsonData.event,
             name: jsonData.eventNameState,
      });
    },
    (error) => {
      this.setState({ error });
    }
  );
}

Я пытался использовать этот код, чтобы проверить его, но всегда получаю _nock .default не является ошибкой функции

 beforeAll(() => {
     nock(
       "api call"
     ).reply(200, {
       eventNameState: "TEST",
     });
   });

   it("Component fetches data from API", async (done) => {
     const root = shallow(<EventState />);
     let componentState = {};
     await waitUntil(() => root.state("eventNameState") !== null);
     expect(componentState).toEqual("TEST");
   });
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...