import { test, expect } from "bun:test"; import { scaffold } from "../src/generate.ts"; test("scaffold page: kebab file, PascalCase page name", () => { const f = scaffold("page", "about-us"); expect(f.path).toBe("pages/about-us.wrn"); expect(f.content).toContain("page AboutUs {"); expect(f.content).toContain('layout = "public"'); }); test("scaffold component: props + class", () => { const f = scaffold("component", "user-card"); expect(f.path).toBe("components/user-card.wrn"); expect(f.content).toContain("component UserCard {"); expect(f.content).toContain('class="wire-user-card"'); }); test("scaffold api: nested path keeps directories, exports GET", () => { const f = scaffold("api", "users/list"); expect(f.path).toBe("api/users/list.ts"); expect(f.content).toContain("export async function GET"); }); test("scaffold schema: validation object", () => { const f = scaffold("schema", "signup"); expect(f.path).toBe("schemas/signup.ts"); expect(f.content).toContain('import { v } from "@wrnexus/validation"'); expect(f.content).toContain("export default v.object("); }); test("scaffold strips extensions from the given name", () => { expect(scaffold("page", "home.wrn").path).toBe("pages/home.wrn"); expect(scaffold("api", "ping.ts").path).toBe("api/ping.ts"); });