New_Micro_Learning/frontend/tests/designTokens.test.ts

29 خطوط
886 B
TypeScript

// @vitest-environment node
import { readFileSync } from 'node:fs'
import { resolve } from 'node:path'
import { describe, expect, it } from 'vitest'
describe('design token contract', () => {
it('defines semantic scales without removing compatibility aliases', () => {
const tokens = readFileSync(resolve(process.cwd(), 'src/styles/tokens.css'), 'utf8')
const requiredTokens = [
'--surface-elevated',
'--surface-interactive',
'--text-subtle',
'--radius-lg: 16px',
'--radius-xl: 20px',
'--space-5: 20px',
'--space-7: 32px',
'--font-size-page',
'--font-size-body',
'--z-popover',
'--z-tooltip',
'--ease-standard',
]
requiredTokens.forEach(token => expect(tokens).toContain(token))
expect(tokens).toContain('--radius-legacy-lg')
expect(tokens).toContain(':root[data-theme="dark"]')
})
})