Files
portal/app/tests/Frontend/tokens-css.spec.ts
T

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\)/);
});
});