Я создал фиктивный вызов API ios API для тестирования функциональности моей веб-страницы, в которой у меня есть панель поиска, которая запрашивает по тексту. Нижеследующее тело используется по умолчанию.
axiosMock.onPost("https://search/IndexSearch").reply(config => {
const body = JSON.parse(config.data);
return [
200,
{
results: [
{
class_name: "class-2019-Xavier/All",
name: "class of 2019"
}
],
total_hits: 1,
facets: {},
start: 0,
count: 15
}
];
});
Теперь предположим, что у меня есть ввод для поискового запроса, в соответствии с которым должен отображаться конкретный результат на основе данных, отправленных через вызов API. Это управляется функцией как:
function getIndexSearchHistory() {
return axiosMock.history.post.filter(request =>
request.url.endsWith("/IndexSearch")
);
}
Итак, теперь я хочу получить ответ на вызов API после выполнения поискового запроса. Я написал утверждение как:
it("searches school data based on metadata", async () => {
const { getByText, getByPlaceholderText } = renderComponent();
await wait();
const textQueryInput = getByPlaceholderText("Search...");
fireEvent.change(textQueryInput, {
target: { value: "class_year= 2017" }
});
fireEvent.click(getByText("Search"));
await wait();
expect(JSON.parse(getIndexSearchHistory().slice(-1)[0].data)).toMatchObject(
{
fulltext: "class_year= 2017",
metadata: {}
}
);
});
Вышеупомянутое утверждение верно. Но я хочу проверить это на ответе, полученном от вызова API.