36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { describe, expect, it, afterEach } from 'vitest';
|
|
import { applyGuestTheme } from '../guestTheme';
|
|
|
|
const baseTheme = {
|
|
primary: '#ff3366',
|
|
secondary: '#ff99aa',
|
|
background: '#111111',
|
|
surface: '#222222',
|
|
mode: 'dark' as const,
|
|
};
|
|
|
|
describe('applyGuestTheme', () => {
|
|
afterEach(() => {
|
|
const root = document.documentElement;
|
|
root.classList.remove('guest-theme', 'dark');
|
|
root.style.removeProperty('color-scheme');
|
|
root.style.removeProperty('--guest-primary');
|
|
root.style.removeProperty('--guest-secondary');
|
|
root.style.removeProperty('--guest-background');
|
|
root.style.removeProperty('--guest-surface');
|
|
});
|
|
|
|
it('applies and restores guest theme settings', () => {
|
|
const cleanup = applyGuestTheme(baseTheme);
|
|
|
|
expect(document.documentElement.classList.contains('guest-theme')).toBe(true);
|
|
expect(document.documentElement.classList.contains('dark')).toBe(true);
|
|
expect(document.documentElement.style.colorScheme).toBe('dark');
|
|
expect(document.documentElement.style.getPropertyValue('--guest-background')).toBe('#111111');
|
|
|
|
cleanup();
|
|
|
|
expect(document.documentElement.classList.contains('guest-theme')).toBe(false);
|
|
});
|
|
});
|