Чтобы проверить, визуализирует ли компонент нужную разметку для каждого состояния, вы можете смоделировать возвращаемое значение хука useRequest
. Это может быть достигнуто с помощью функции jest.mock
для проверки поведения модуля @umijs/hooks
:
import { useRequest } from "@umijs/hooks";
jest.mock("@umijs/hooks");
Теперь каждое состояние можно моделировать с помощью mockReturnValue
функция. Например, чтобы смоделировать состояние загрузки, мы сделаем:
useRequest.mockReturnValue({
loading: true
});
Тесты для каждого сценария будут выглядеть примерно так:
import { useRequest } from "@umijs/hooks";
jest.mock("@umijs/hooks");
describe("TestComponent", () => {
describe("loading description", () => {
beforeEach(() => useRequest.mockReturnValue({ loading: true }));
it("loading assertion", () => {/* ... */});
});
describe("error description", () => {
beforeEach(() => useRequest.mockReturnValue({ error: "Given error" }));
it("error assertion", () => {/* ... */});
});
describe("valid data description", () => {
beforeEach(() => {
useRequest.mockReturnValue({ data: { value: "Given data" }});
});
it("valid data assertion", () => {/* ... */});
});
describe("empty data description", () => {
beforeEach(() => useRequest.mockReturnValue({ data: {} }));
it("empty data assertion", () => {/* ... */});
});
});