36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import { MantineProvider } from "@mantine/core";
|
|
import { cleanup, render, screen } from "@testing-library/react";
|
|
import { afterEach, describe, expect, it } from "vitest";
|
|
import { StateView } from "./StateView";
|
|
|
|
describe("StateView", () => {
|
|
afterEach(cleanup);
|
|
|
|
it("renders an accessible loading state with a loader", () => {
|
|
render(
|
|
<MantineProvider>
|
|
<StateView loading text="Пожалуйста, подождите." title="Загрузка" />
|
|
</MantineProvider>,
|
|
);
|
|
|
|
const status = screen.getByRole("status");
|
|
expect(status).toHaveTextContent("Загрузка");
|
|
expect(screen.getByLabelText("Загрузка")).toBeInTheDocument();
|
|
});
|
|
|
|
it("renders an accessible error state", () => {
|
|
render(
|
|
<MantineProvider>
|
|
<StateView
|
|
error
|
|
text="Попробуйте обновить страницу позже."
|
|
title="Что-то пошло не так"
|
|
/>
|
|
,
|
|
</MantineProvider>,
|
|
);
|
|
|
|
expect(screen.getByRole("alert")).toHaveTextContent("Что-то пошло не так");
|
|
});
|
|
});
|