56 lines
1.9 KiB
TypeScript
56 lines
1.9 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import fs from 'node:fs';
|
|
import path from 'node:path';
|
|
|
|
const cssPath = path.resolve(__dirname, '../../resources/css/tokens.css');
|
|
const css = fs.existsSync(cssPath) ? fs.readFileSync(cssPath, 'utf-8') : '';
|
|
|
|
describe('tokens.css', () => {
|
|
it.each([
|
|
['--liderra-teal', '#0F6E56'],
|
|
['--liderra-teal-deep', '#0A5A47'],
|
|
['--liderra-noir', '#012019'],
|
|
['--liderra-ivory', '#F6F3EC'],
|
|
['--liderra-surface', '#FFFFFF'],
|
|
['--liderra-muted', '#6B6356'],
|
|
['--liderra-success', '#2E8B57'],
|
|
['--liderra-saffron', '#D9A441'],
|
|
['--liderra-error', '#B83A3A'],
|
|
['--liderra-info', '#3F7C95'],
|
|
['--liderra-plum', '#7A5BA3'],
|
|
['--liderra-salmon', '#CC6E50'],
|
|
])('exposes %s = %s', (name, value) => {
|
|
const re = new RegExp(`${name}\\s*:\\s*${value}`, 'i');
|
|
expect(css).toMatch(re);
|
|
});
|
|
|
|
it.each([
|
|
['--space-1', '4px'],
|
|
['--space-2', '8px'],
|
|
['--space-3', '12px'],
|
|
['--space-4', '16px'],
|
|
['--space-6', '24px'],
|
|
['--space-8', '32px'],
|
|
['--space-12', '48px'],
|
|
['--space-16', '64px'],
|
|
])('exposes spacing %s = %s', (name, value) => {
|
|
expect(css).toMatch(new RegExp(`${name}\\s*:\\s*${value}`));
|
|
});
|
|
|
|
it.each(['--radius-6', '--radius-8', '--radius-10', '--radius-12', '--radius-14', '--radius-full'])(
|
|
'exposes radius %s',
|
|
(name) => {
|
|
expect(css).toMatch(new RegExp(`${name}\\s*:`));
|
|
},
|
|
);
|
|
|
|
it.each(['--shadow-1', '--shadow-2', '--shadow-3', '--shadow-4'])('exposes shadow %s', (name) => {
|
|
expect(css).toMatch(new RegExp(`${name}\\s*:`));
|
|
});
|
|
|
|
it('exposes --liderra-line and --liderra-line-strong', () => {
|
|
expect(css).toMatch(/--liderra-line:\s*rgba\(1,\s*32,\s*25,\s*0\.08\)/);
|
|
expect(css).toMatch(/--liderra-line-strong:\s*rgba\(1,\s*32,\s*25,\s*0\.14\)/);
|
|
});
|
|
});
|