refactor: deduplicate CSS parser helpers and drop redundant base test

- Collapse extractRootBlock + extractDarkBlock into a single extractBlock
  helper; the two functions shared identical body logic (same regex, same
  return) and differed only in the string they received — now the call
  sites pass the appropriate slice inline.
- Remove the second test in base.test.ts ("covers all three form control
  selectors in one rule"): the first test's regex already asserts all
  three selectors appear together with font-size: 16px, so the individual
  /input/, /textarea/, /select/ matches added no coverage.
This commit is contained in:
2026-05-13 17:58:47 -07:00
parent 6b06d00115
commit 8511e0c720
2 changed files with 3 additions and 14 deletions

View File

@@ -8,9 +8,4 @@ describe('base.css', () => {
expect(css).toMatch(/input\s*,\s*textarea\s*,\s*select\s*\{[^}]*font-size\s*:\s*16px/);
});
it('covers all three form control selectors in one rule', () => {
expect(css).toMatch(/input/);
expect(css).toMatch(/textarea/);
expect(css).toMatch(/select/);
});
});

View File

@@ -5,17 +5,11 @@ const css = readFileSync(new URL('../dist/tokens.css', import.meta.url), 'utf-8'
// ---- CSS parser helpers ----
function extractRootBlock(src: string): string {
function extractBlock(src: string): string {
const m = src.match(/:root\s*\{([^}]+)\}/);
return m?.[1] ?? '';
}
function extractDarkBlock(src: string): string {
const afterMedia = src.split('@media (prefers-color-scheme: dark)')[1] ?? '';
const m = afterMedia.match(/:root\s*\{([^}]+)\}/);
return m?.[1] ?? '';
}
function parseProps(block: string): Map<string, string> {
const map = new Map<string, string>();
const re = /--([\w-]+)\s*:\s*([^;]+);/g;
@@ -63,8 +57,8 @@ function contrast(hex1: string, hex2: string): number {
// ---- Fixtures ----
const rootProps = parseProps(extractRootBlock(css));
const darkProps = parseProps(extractDarkBlock(css));
const rootProps = parseProps(extractBlock(css));
const darkProps = parseProps(extractBlock(css.split('@media (prefers-color-scheme: dark)')[1] ?? ''));
// Merged: dark overrides on top of light primitives so var() refs resolve correctly.
const mergedDark = new Map([...rootProps, ...darkProps]);