Jest mockResolvedValue возвращает неопределенное значение с несколькими аргументами

Я пытаюсь написать модульный тест для моего кода NodeJs. Я издеваюсь над своим вызовом API, используя mockResolvedValue.

Это мой модульный тест:

      const { search } = require("../src/utils");

jest.mock("axios");

test("Should find an user", async () => {
  axios.get.mockResolvedValue({
    data: [
      {
        userId: 1,
        name: "Mike",
      },
    ],
  });
  const phone = "123456789";
  const token = "ItIsAFakeToken"

  const name = await search(phone, token);
  expect(name).toEqual("Mike");
});

И это мой searchфункция

      const searchContact = async (phone, token) => {
  const config = {
    method: "get",
    url: "https://userdatabase/api/search",
    token,
    params: {
      phone
    },
  };
  const response = await axios(config);
  return response.name;
}

Он вернул мне « неопределенный » ответ. Однако, если я изменю свой вызов API на приведенный ниже код без использования configпараметр, я могу получить ожидаемые данные. Дело в том, что мне нужно передать несколько аргументов в реальном коде.

        const response = await axios.get("https://userdatabase/api/search");

Пожалуйста помоги. Спасибо.

1 ответ

Я понял причину.

В моем файле модульного теста я использую axios.get.mockResolvedValue, так должно быть axios.mockResolvedValue(удалять get). Так как я не использую axios.getв методе, который тестируется.

Другие вопросы по тегам