import { render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { describe, expect, it, vi } from "vitest"; import { Button } from "./button"; describe("Button", () => { it("renders label, exposes variant/size data attrs, fires onClick", async () => { const onClick = vi.fn(); render(); const btn = screen.getByRole("button", { name: "保存" }); expect(btn).toHaveAttribute("data-variant", "default"); expect(btn).toHaveAttribute("data-size", "default"); await userEvent.click(btn); expect(onClick).toHaveBeenCalledTimes(1); }); it("applies non-default variant/size and blocks clicks when disabled", async () => { const onClick = vi.fn(); render( , ); const btn = screen.getByRole("button"); expect(btn).toHaveAttribute("data-variant", "outline"); expect(btn).toHaveAttribute("data-size", "sm"); expect(btn).toBeDisabled(); await userEvent.click(btn); expect(onClick).not.toHaveBeenCalled(); }); });