You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
// frontend/tests/tokens.test.ts — 디자인 토큰 값이 원본 dash.css :root 와 일치하는지 회귀
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
const css = fs.readFileSync(path.resolve(__dirname, "../styles/tokens.css"), "utf8");
|
|
|
|
const cases: [string, string][] = [
|
|
["--bg-top", "#f6efe7"],
|
|
["--bg-mid", "#eef0f1"],
|
|
["--bg-bot", "#e9ebed"],
|
|
["--card", "#ffffff"],
|
|
["--ink", "#211f1c"],
|
|
["--ink-2", "#514d47"],
|
|
["--muted", "#8d8a85"],
|
|
["--faint", "#b6b3ad"],
|
|
["--fill", "#29241f"],
|
|
["--on-fill", "#f4efe6"],
|
|
["--blue", "#4f72e0"],
|
|
["--coral", "#df7256"],
|
|
["--green", "#4e9b66"],
|
|
["--violet", "#8b6fd4"],
|
|
["--amber", "#e0a23c"],
|
|
["--lime", "#c2f24a"],
|
|
["--lime-ink", "#233006"],
|
|
["--radius", "22px"],
|
|
["--radius-sm", "14px"],
|
|
];
|
|
|
|
describe("tokens.css 충실도", () => {
|
|
for (const [name, val] of cases) {
|
|
it(`${name} = ${val}`, () => {
|
|
const re = new RegExp(
|
|
`${name}\\s*:\\s*${val.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}`,
|
|
"i",
|
|
);
|
|
expect(css).toMatch(re);
|
|
});
|
|
}
|
|
|
|
it("다크 오버라이드 존재 (--card #2c2925)", () => {
|
|
expect(css).toMatch(/\[data-theme="dark"\]/);
|
|
expect(css).toMatch(/--card:\s*#2c2925/i);
|
|
});
|
|
});
|