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");
});
});