import { readFileSync } from "node:fs"; import { resolve } from "node:path"; import { describe, expect, it } from "vitest"; describe("ListWorkspaceLayout", () => { it("defines a fixed workspace rail width and sticky-capable main body", () => { const source = readFileSync( resolve(process.cwd(), "src/patterns/ListWorkspaceLayout/ListWorkspaceLayout.vue"), "utf8", ); expect(source).toContain("w-64"); expect(source).toContain("overflow-auto"); expect(source).toContain("backdrop-blur"); expect( "hidden w-64 shrink-0 overflow-auto border-r border-[var(--ui-border)] bg-[var(--ui-surface)] p-4 lg:block", ).toMatchInlineSnapshot( "\"hidden w-64 shrink-0 overflow-auto border-r border-[var(--ui-border)] bg-[var(--ui-surface)] p-4 lg:block\"", ); }); it("declares rail and default slots", () => { const source = readFileSync( resolve(process.cwd(), "src/patterns/ListWorkspaceLayout/ListWorkspaceLayout.vue"), "utf8", ); expect(source).toContain("showRail: true"); expect(source).toContain("props.showRail && Boolean(slots.rail)"); expect(source).toContain(''); expect(source).toContain(""); }); });