import { describe, expect, it, vi } from "vitest"; import { fireEvent, render, screen } from "@testing-library/react"; import { GoalsView } from "../GoalsView"; vi.mock("lucide-react", () => ({ Plus: () => , })); describe("GoalsView", () => { it("renders empty state", () => { render(); expect(screen.getByTestId("goals-empty-state")).toBeInTheDocument(); }); it("does not show warning at 2 active goals", () => { render( , ); expect(screen.queryByRole("status")).not.toBeInTheDocument(); }); it("shows warning at 3 active goals", () => { render( , ); expect(screen.getByRole("status")).toHaveTextContent("5-active goal cap"); }); it("shows hard error and prevents 6th activation when 5 are active", () => { render( , ); fireEvent.click(screen.getByTestId("goal-activate-g6")); expect(screen.getByRole("alert")).toBeInTheDocument(); expect(screen.getByTestId("goal-activate-g6")).toHaveTextContent("Activate"); }); it("renders add button with class for focus-visible style hook", () => { render(); expect(screen.getByTestId("goals-add-button")).toHaveClass("goals-add-button"); }); });