diff --git a/src/components/ErrorPopover.tsx b/src/components/ErrorPopover.tsx index 282f26f..fa2ab14 100644 --- a/src/components/ErrorPopover.tsx +++ b/src/components/ErrorPopover.tsx @@ -7,7 +7,7 @@ import { InfoCardDescription, InfoCardList, InfoCardListItem, -} from "@/components/ui/info-card"; +} from "./InfoCard"; interface ErrorPopoverContentProps { machineError?: number; diff --git a/src/components/ui/info-card.tsx b/src/components/InfoCard.tsx similarity index 100% rename from src/components/ui/info-card.tsx rename to src/components/InfoCard.tsx diff --git a/src/components/WorkflowStepper/StepPopover.tsx b/src/components/WorkflowStepper/StepPopover.tsx index 741f075..43273e9 100644 --- a/src/components/WorkflowStepper/StepPopover.tsx +++ b/src/components/WorkflowStepper/StepPopover.tsx @@ -13,7 +13,7 @@ import { InfoCardDescription, InfoCardList, InfoCardListItem, -} from "@/components/ui/info-card"; +} from "../InfoCard"; export interface StepPopoverProps { stepId: number; diff --git a/src/components/ui/info-card.test.tsx b/src/components/ui/info-card.test.tsx deleted file mode 100644 index 94ef41b..0000000 --- a/src/components/ui/info-card.test.tsx +++ /dev/null @@ -1,157 +0,0 @@ -import { describe, it, expect } from "vitest"; -import { render, screen } from "@testing-library/react"; -import { - InfoCard, - InfoCardTitle, - InfoCardDescription, - InfoCardList, - InfoCardListItem, -} from "./info-card"; - -describe("InfoCard", () => { - describe("rendering", () => { - it("should render with default info variant", () => { - render( - - Test Title - , - ); - - expect(screen.getByText("Test Title")).toBeTruthy(); - }); - - it("should render with all variants", () => { - const variants = ["info", "warning", "error", "success"] as const; - - variants.forEach((variant) => { - const { container } = render( - - {variant} Card - , - ); - - expect(screen.getByText(`${variant} Card`)).toBeTruthy(); - const firstChild = container.firstChild as HTMLElement | null; - expect(firstChild?.classList.contains("border-l-4")).toBe(true); - }); - }); - - it("should render custom icon when provided", () => { - const CustomIcon = (props: React.SVGProps) => ( - - ); - - render( - - Title - , - ); - - expect(screen.getByTestId("custom-icon")).toBeTruthy(); - }); - - it("should not render icon when showDefaultIcon is false", () => { - const { container } = render( - - Title - , - ); - - const svg = container.querySelector("svg"); - expect(svg).toBeNull(); - }); - }); - - describe("InfoCardTitle", () => { - it("should render with correct variant colors", () => { - const { rerender } = render( - Info Title, - ); - const infoTitle = screen.getByText("Info Title"); - expect(infoTitle.classList.contains("text-info-900")).toBe(true); - - rerender(Error Title); - const errorTitle = screen.getByText("Error Title"); - expect(errorTitle.classList.contains("text-danger-900")).toBe(true); - }); - }); - - describe("InfoCardDescription", () => { - it("should render description text", () => { - render(This is a description); - expect(screen.getByText("This is a description")).toBeTruthy(); - }); - - it("should apply variant colors", () => { - render( - - Warning description - , - ); - const desc = screen.getByText("Warning description"); - expect(desc.classList.contains("text-warning-800")).toBe(true); - }); - }); - - describe("InfoCardList", () => { - it("should render unordered list by default", () => { - render( - - Item 1 - Item 2 - , - ); - - const list = screen.getByRole("list"); - expect(list.tagName).toBe("UL"); - expect(list.classList.contains("list-disc")).toBe(true); - }); - - it("should render ordered list when specified", () => { - render( - - First - Second - , - ); - - const list = screen.getByRole("list"); - expect(list.tagName).toBe("OL"); - expect(list.classList.contains("list-decimal")).toBe(true); - }); - - it("should render list items", () => { - render( - - Item 1 - Item 2 - , - ); - - expect(screen.getByText("Item 1")).toBeTruthy(); - expect(screen.getByText("Item 2")).toBeTruthy(); - }); - }); - - describe("composition", () => { - it("should render full info card with all components", () => { - render( - - Success! - - Operation completed successfully - - - First step completed - Second step completed - - , - ); - - expect(screen.getByText("Success!")).toBeTruthy(); - expect(screen.getByText("Operation completed successfully")).toBeTruthy(); - expect(screen.getByText("First step completed")).toBeTruthy(); - expect(screen.getByText("Second step completed")).toBeTruthy(); - }); - }); -}); diff --git a/vitest.config.ts b/vitest.config.ts index a265845..527491c 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,12 +1,6 @@ import { defineConfig } from "vitest/config"; -import { resolve } from "path"; export default defineConfig({ - resolve: { - alias: { - "@": resolve(__dirname, "./src"), - }, - }, test: { globals: true, environment: "jsdom",