import { expect, test } from "bun:test"; import { readFileSync } from "node:fs"; import { join } from "node:path"; import { compileWireFile } from "../../compiler/src/index.ts"; import { uiComponentNames, uiComponentsDir, uiCss } from "../src/index.ts"; test("bundled UI assets are discoverable and readable", () => { expect(uiComponentNames()).toContain("Button"); expect(uiComponentNames()).toContain("FAQAccordion"); expect(uiComponentNames()).toContain("AnnouncementBar"); expect(uiComponentNames()).toContain("BackToTop"); expect(readFileSync(join(uiComponentsDir(), "Button.wrn"), "utf8")).toContain("component Button"); expect(uiCss()).toContain("--wire-"); }); test.each(uiComponentNames())("bundled UI component %s compiles", (name) => { const path = join(uiComponentsDir(), `${name}.wrn`); expect(() => compileWireFile(readFileSync(path, "utf8"), path)).not.toThrow(); });