Как проверить данные ответа из фиктивного API с помощью шутки? - PullRequest
0 голосов
/ 06 мая 2020

Я создал фиктивный вызов 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...