109e74db41
Web UI rework. Shared-components slice (drift prevention): - Migrate SectionCard, SelectionRailCard, TabbedCard, MetricCard, DiskSpaceCard, HoverEditButton, DialogFooter, ConfirmDialog, LibraryOverview, NowPlaying, SessionActivityPanel off @mui - HoverEditButton: MUI IconButton + EditOutlined -> Button + lucide Pencil - Status mapping uses the success Badge variant (chart-2) for healthy - Exported APIs preserved so consuming pages still compile (no page edits) - 11 behavioral Vitest component tests added Gate: build + lint + test green.
22 lines
757 B
TypeScript
22 lines
757 B
TypeScript
import { describe, it, expect, vi } from "vitest";
|
|
import { render, screen } from "@testing-library/react";
|
|
import userEvent from "@testing-library/user-event";
|
|
import { HoverEditButton } from "../HoverEditButton";
|
|
|
|
describe("HoverEditButton", () => {
|
|
it("fires onClick and exposes the default aria-label", async () => {
|
|
const onClick = vi.fn();
|
|
render(<HoverEditButton onClick={onClick} />);
|
|
const button = screen.getByRole("button", { name: "Edit" });
|
|
await userEvent.click(button);
|
|
expect(onClick).toHaveBeenCalledTimes(1);
|
|
});
|
|
|
|
it("honors a custom label", () => {
|
|
render(<HoverEditButton onClick={() => {}} label="Rename machine" />);
|
|
expect(
|
|
screen.getByRole("button", { name: "Rename machine" }),
|
|
).toBeInTheDocument();
|
|
});
|
|
});
|