import assert from "node:assert/strict";
import test from "node:test";
import { renderToStaticMarkup } from "react-dom/server";
import type { StyleData } from "../lib/types";
import {
getLevelVariant,
getTaxonomyValue,
MetadataBadges,
} from "./MetadataBadges";
import { FilterBar } from "./FilterBar";
import { DEFAULT_FILTERS } from "../lib/filterStyles";
const baseStyle: StyleData = {
no: 1,
styleId: "minimalism",
styleCategory: "Minimalism",
aliases: [],
status: "active",
parentStyleId: "",
replacementDomain: "",
replacementId: "",
preferredMode: "auto",
type: "General",
keywords: "",
primaryColors: "",
secondaryColors: "",
effectsAnimation: "",
bestFor: "",
doNotUseFor: "",
lightMode: "supported",
darkMode: "conditional",
performance: "cost:moderate|drivers:animation,blur",
accessibility: "risk:high|requires:contrast-text-4.5,keyboard",
mobileFriendly: "adaptable",
conversionFocused: "",
frameworkCompatibility: "tailwind",
eraOrigin: "",
complexity: "Medium",
aiPromptKeywords: "",
cssTechnicalKeywords: "",
implementationChecklist: "",
designSystemVariables: "",
extractedColors: [],
cssProperties: {},
};
test("extracts only the requested controlled taxonomy value", () => {
assert.equal(getTaxonomyValue(baseStyle.performance, "cost"), "moderate");
assert.equal(getTaxonomyValue(baseStyle.accessibility, "risk"), "high");
assert.equal(getTaxonomyValue(baseStyle.performance, "risk"), "unknown");
});
test("maps cost, risk, and mode support levels to semantic variants", () => {
assert.equal(getLevelVariant("low"), "green");
assert.equal(getLevelVariant("supported"), "green");
assert.equal(getLevelVariant("moderate"), "yellow");
assert.equal(getLevelVariant("conditional"), "yellow");
assert.equal(getLevelVariant("high"), "red");
assert.equal(getLevelVariant("not-recommended"), "red");
assert.equal(getLevelVariant("unknown"), "gray");
});
test("renders concise labels with explicit accessible meaning", () => {
const markup = renderToStaticMarkup();
assert.match(markup, /aria-label="Style metadata"/);
assert.match(markup, /class="sr-only">Performance cost: Moderate<\/span>/);
assert.match(markup, /class="sr-only">Accessibility risk: High<\/span>/);
assert.match(markup, /class="sr-only">Light mode support: Supported<\/span>/);
assert.match(markup, /class="sr-only">Dark mode support: Conditional<\/span>/);
assert.match(markup, /aria-hidden="true">A11y risk: High<\/span>/);
assert.doesNotMatch(markup, / {
const markup = renderToStaticMarkup(
undefined}
resultCount={50}
totalCount={50}
types={["General"]}
/>,
);
assert.match(markup, /aria-label="Status filter"[^>]*role="group"/);
assert.match(markup, /aria-pressed="true"[^>]*>active<\/button>/);
assert.match(markup, /aria-label="Type filter"[^>]*role="group"/);
assert.match(markup, /aria-pressed="true"[^>]*>All<\/button>/);
});