import { render, screen } from "@solidjs/testing-library"; import { describe, expect, it } from "vitest"; import { NavigationMenu } from "../../../src/components/navigation-menu/index"; import { NavigationMenuRootPropsSchema, NavigationMenuMeta } from "../../../src/components/navigation-menu/navigation-menu.props"; describe("NavigationMenu", () => { it("renders menu with link items", () => { render(() => ( About )); expect(screen.getByText("About")).toBeTruthy(); }); it("renders trigger with content", () => { render(() => ( Products
Product A
)); expect(screen.getByText("Products")).toBeTruthy(); }); it("renders as nav element", () => { render(() => ( Home )); expect(screen.getByTestId("nav").tagName).toBe("NAV"); }); it("schema validates orientation", () => { expect(NavigationMenuRootPropsSchema.safeParse({ orientation: "horizontal" }).success).toBe(true); expect(NavigationMenuRootPropsSchema.safeParse({ orientation: "invalid" }).success).toBe(false); }); it("meta has required fields", () => { expect(NavigationMenuMeta.name).toBe("NavigationMenu"); expect(NavigationMenuMeta.parts).toContain("Root"); expect(NavigationMenuMeta.parts).toContain("List"); expect(NavigationMenuMeta.parts).toContain("Trigger"); expect(NavigationMenuMeta.parts).toContain("Content"); expect(NavigationMenuMeta.parts).toContain("Link"); }); });