Files
HIPCTF2/tests/frontend/theme.spec.ts
T

29 lines
1.1 KiB
TypeScript

import { ThemeLoaderService, BUILTIN_THEMES } from '../../backend/src/common/utils/theme-loader.service';
describe('ThemeLoaderService builtins', () => {
it('includes all 10 canonical theme ids', () => {
const ids = BUILTIN_THEMES.map((t) => t.id).sort();
expect(ids).toEqual([
'classic', 'crimson', 'cyber', 'forest', 'midnight',
'monochrome', 'neon', 'ocean', 'paper', 'sunset',
]);
});
it('every builtin theme has full tokens', () => {
for (const t of BUILTIN_THEMES) {
expect(t.tokens.primary).toMatch(/^#/);
expect(t.tokens.radii.sm).toBeTruthy();
expect(t.tokens.spacingScale.length).toBeGreaterThan(0);
}
});
it('falls back to default for unknown id', () => {
const config = { get: jest.fn((k: string, d: any) => d) } as any;
const settings = { get: jest.fn().mockResolvedValue('classic') } as any;
const svc = new ThemeLoaderService(config, settings);
return svc.onModuleInit().then(() => {
const t = svc.getTheme('totally-unknown');
expect(t.id).toBe('classic');
});
});
});