Я видел похожие решения по переполнению стека, но они обычно включали перемещение вызова выборки в его собственную функцию и вызов его внутри 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");
});
});