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
в методе, который тестируется.