docs(ui): publish complete component catalog
This commit is contained in:
@@ -60,6 +60,38 @@ test("every package page contains installation, guide, and complete API sections
|
||||
}
|
||||
});
|
||||
|
||||
test("UI components have a dedicated catalog and complete detail pages", () => {
|
||||
const reference = JSON.parse(
|
||||
readFileSync(join(root, "node_modules", "@wrnexus", "ui", "component-reference.json"), "utf8"),
|
||||
) as { count: number; components: Array<{ name: string; props: unknown[] }> };
|
||||
const catalog = readFileSync(join(root, "app", "pages", "components.wrn"), "utf8");
|
||||
const details = readdirSync(join(root, "app", "pages", "components")).filter((file) =>
|
||||
file.endsWith(".wrn"),
|
||||
);
|
||||
expect(catalog).toContain(`@wrnexus/ui · ${reference.count} components`);
|
||||
expect(catalog.match(/class="component-card"/g)).toHaveLength(reference.count);
|
||||
expect(details).toHaveLength(reference.count);
|
||||
const button = readFileSync(join(root, "app", "pages", "components", "button.wrn"), "utf8");
|
||||
expect(button).toContain("Props and attributes");
|
||||
expect(button).toContain("Requirement");
|
||||
expect(button).toContain("Default");
|
||||
expect(button).toContain('id="usage"');
|
||||
expect(button).toContain('id="source"');
|
||||
const uiPackage = readFileSync(join(packagePages, "ui.wrn"), "utf8");
|
||||
expect(uiPackage).toContain('href="/components"');
|
||||
expect(uiPackage).not.toContain("All 901 UI components and props");
|
||||
});
|
||||
|
||||
test("primary navigation exposes the component catalog", () => {
|
||||
for (const file of [
|
||||
join(root, "app", "pages", "index.wrn"),
|
||||
join(root, "app", "pages", "getting-started.wrn"),
|
||||
join(root, "app", "pages", "packages", "core.wrn"),
|
||||
]) {
|
||||
expect(readFileSync(file, "utf8")).toContain('<a href="/components">Components</a>');
|
||||
}
|
||||
});
|
||||
|
||||
test("every package page shows multiple named usage examples", () => {
|
||||
for (const name of expected) {
|
||||
const source = readFileSync(join(packagePages, `${name}.wrn`), "utf8");
|
||||
|
||||
Reference in New Issue
Block a user