import { fireEvent, render, screen } from "@solidjs/testing-library"; import { describe, expect, it } from "vitest"; import { CommandPalette } from "../../../src/components/command-palette/index"; import { CommandPaletteRootPropsSchema, CommandPaletteMeta } from "../../../src/components/command-palette/command-palette.props"; describe("CommandPalette", () => { it("renders input and items", () => { render(() => ( Copy Paste )); expect(screen.getByPlaceholderText("Search commands...")).toBeTruthy(); expect(screen.getByText("Copy")).toBeTruthy(); expect(screen.getByText("Paste")).toBeTruthy(); }); it("renders groups with headings", () => { render(() => ( Save )); expect(screen.getByText("Actions")).toBeTruthy(); expect(screen.getByText("Save")).toBeTruthy(); }); it("calls onSelect when item activated", () => { let selected = ""; render(() => ( { selected = v; }}> Run )); fireEvent.click(screen.getByText("Run")); expect(selected).toBe("run"); }); it("schema validates", () => { expect(CommandPaletteRootPropsSchema.safeParse({ search: "test", loop: true, filter: false }).success).toBe(true); }); it("meta has fields", () => { expect(CommandPaletteMeta.name).toBe("CommandPalette"); expect(CommandPaletteMeta.parts).toContain("Root"); expect(CommandPaletteMeta.parts).toContain("Input"); expect(CommandPaletteMeta.parts).toContain("Item"); }); });