Files
HiveGrid-Wireframes/03 Quellen und Referenzen/hivegrid-cloud/apps/web/app/ui/components/Progress/Progress.test.tsx
T

29 lines
1.1 KiB
TypeScript

// @vitest-environment jsdom
import "@testing-library/jest-dom/vitest";
import { render, screen } from "@testing-library/react";
import { describe, expect, it } from "vitest";
import { Progress } from ".";
describe("Progress accessibility wrapper", () => {
it("uses its string label as an accessible-name fallback", () => {
render(<Progress label="Project progress" value={50} />);
expect(screen.getByRole("progressbar", { name: "Project progress" })).toBeInTheDocument();
});
it("preserves explicit aria-label and aria-labelledby contracts", () => {
const { rerender } = render(<Progress aria-label="Explicit progress" label="Visible label" value={50} />);
expect(screen.getByRole("progressbar", { name: "Explicit progress" })).toBeInTheDocument();
rerender(
<>
<span id="external-progress-label">External progress</span>
<Progress aria-labelledby="external-progress-label" label="Visible label" value={50} />
</>
);
const progress = screen.getByRole("progressbar", { name: "External progress" });
expect(progress).not.toHaveAttribute("aria-label");
});
});