Задать вопрос
@asdasdqwe

Как создать mock для axios create?

app.jsx
useEffect(() => {
    const axiosClient = axios.create({
        baseURL: `http://localhost:8000/api`,
    });

    axiosClient.get(`/categories/list`);
})


app.test.jsx
import App from "./app.jsx";
import axios from "axios";

jest.mock("axios");

test("should display app", async () => {

    axios.get.mockImplementation((url) => {
        return Promise.resolve({
            data: [{ id: 1, name: "books" }],
        });
    });

    render(<App />);

    expect(await screen.findByText("books")).toBeInTheDocument();
});


В итоге ошибка
TypeError: Cannot read properties of undefined (reading 'get')

> 14 | axiosClient.get(`/categories/list`);
| ^
  • Вопрос задан
  • 1200 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
@asdasdqwe Автор вопроса
Надо создать mock для create метода тоже

import App from "./app.jsx";
import axios from "axios";

jest.mock("axios");

beforeEach(() => {
		axios.create = jest.fn(() => axios);

		axios.get.mockImplementation((url) => {
        return Promise.resolve({
            data: [{ id: 1, name: "books" }],
        });
    });
	});

test("should display app", async () => {

    render(<App />);

    expect(await screen.findByText("books")).toBeInTheDocument();
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Devilz_1
@Devilz_1
Frontend-Developer
Используйте jest-mock-axios
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽