Files
bergside__typeui/test/existingDesignSystem.test.ts
2026-04-24 13:06:26 +03:00

68 lines
2.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { parseDesignMarkdown, parseManagedDesignSystem, parseSkillMetadata } from "../src/generation/existingDesignSystem";
import { createDesignMarkdownFile, createManagedSkillBody, createManagedSkillFile } from "../src/renderers/shared";
import { DesignSystemInput } from "../src/types";
const sampleDesign: DesignSystemInput = {
productName: "typeui.sh",
brandSummary: "Developer-first UI guidance.",
visualStyle: "modern and clean",
typographyScale: "12/14/16/20/24/32",
colorPalette: "primary, neutral, semantic",
spacingScale: "4/8/12/16/24/32",
accessibilityRequirements: "WCAG 2.2 AA",
writingTone: "clear and direct",
doRules: ["use semantic tokens", "preserve hierarchy"],
dontRules: ["use low contrast", "break spacing rhythm"]
};
describe("parseManagedDesignSystem", () => {
it("parses managed content generated by renderer", () => {
const content = createManagedSkillBody("Cursor", sampleDesign);
expect(parseManagedDesignSystem(content)).toEqual(sampleDesign);
});
it("accepts an empty brand section", () => {
const content = createManagedSkillBody("Cursor", {
...sampleDesign,
brandSummary: ""
});
expect(parseManagedDesignSystem(content)).toEqual({
...sampleDesign,
brandSummary: ""
});
});
it("returns null when managed block is missing", () => {
expect(parseManagedDesignSystem("# Manual only")).toBeNull();
});
});
describe("parseDesignMarkdown", () => {
it("parses generated DESIGN.md content", () => {
const content = createDesignMarkdownFile(sampleDesign);
expect(parseDesignMarkdown(content)).toEqual(sampleDesign);
});
it("returns null when DESIGN.md format is invalid", () => {
expect(parseDesignMarkdown("# invalid")).toBeNull();
});
});
describe("parseSkillMetadata", () => {
it("parses frontmatter metadata from generated content", () => {
const content = createManagedSkillFile("Cursor", sampleDesign, {
name: "typeui-cli",
description: "Guide for generating design-system skill files."
});
expect(parseSkillMetadata(content)).toEqual({
name: "typeui-cli",
description: "Guide for generating design-system skill files."
});
});
it("returns null when frontmatter is missing", () => {
expect(parseSkillMetadata(createManagedSkillBody("Cursor", sampleDesign))).toBeNull();
});
});