Files
EpicNext-Cms/src/components/theme-vars.test.ts
T
2026-07-12 18:47:23 +02:00

29 lines
1.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { themePaletteCss } from "@/lib/theme-css";
import { PRESETS } from "@/lib/theme-presets";
describe("themePaletteCss", () => {
it("emits separate preset-specific light and dark scopes", () => {
const ocean = PRESETS.Ocean;
const css = `${themePaletteCss(":root", ocean.light)}${themePaletteCss("html.dark", ocean.dark)}`;
expect(css).toContain(":root{");
expect(css).toContain("html.dark{");
expect(css).toContain(`--color-primary:${ocean.light.color_primary}`);
expect(css).toContain(`--color-background:${ocean.light.color_background}`);
expect(css).toContain(`--color-background:${ocean.dark.color_background}`);
expect(ocean.dark.color_primary).toBe(ocean.light.color_primary);
for (const variable of [
"--color-text-subtle-readable", "--color-text-disabled-readable",
"--admin-sidebar-text-readable", "--color-success-text-readable",
"--color-success-foreground-readable", "--color-warning-text-readable",
"--color-error-text-readable", "--color-info-text-readable",
"--admin-canvas", "--admin-surface", "--admin-surface-elevated",
"--admin-text", "--admin-text-muted", "--admin-border",
"--admin-accent", "--admin-accent-foreground", "--admin-overlay",
"--admin-focus-ring", "--admin-success", "--admin-warning",
"--admin-error", "--admin-info",
]) expect(css).toContain(variable);
});
});