Skip to content

Commit cc85475

Browse files
committed
tests fix
1 parent 07ed784 commit cc85475

File tree

1 file changed

+24
-34
lines changed

1 file changed

+24
-34
lines changed

frontend/e2e/theme.spec.ts

Lines changed: 24 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,47 @@
11
import { test, expect } from '@playwright/test';
22

33
test.describe('Theme', () => {
4-
test.beforeEach(async ({ page }) => {
5-
// Clear localStorage to start fresh
4+
test('auto theme follows system light preference', async ({ page }) => {
5+
await page.emulateMedia({ colorScheme: 'light' });
66
await page.goto('/login');
77
await page.evaluate(() => localStorage.removeItem('app-theme'));
8-
});
9-
10-
test('defaults to auto theme (no dark class)', async ({ page }) => {
11-
await page.goto('/login');
8+
await page.reload();
129

13-
// Check that dark class is not present initially (assuming system prefers light)
1410
const hasDarkClass = await page.evaluate(() =>
1511
document.documentElement.classList.contains('dark')
1612
);
17-
// This may be true or false depending on system preference
18-
expect(typeof hasDarkClass).toBe('boolean');
13+
expect(hasDarkClass).toBe(false);
1914
});
2015

21-
test('persists theme preference in localStorage', async ({ page }) => {
16+
test('auto theme follows system dark preference', async ({ page }) => {
17+
await page.emulateMedia({ colorScheme: 'dark' });
2218
await page.goto('/login');
23-
24-
// Set theme via localStorage
25-
await page.evaluate(() => localStorage.setItem('app-theme', 'dark'));
19+
await page.evaluate(() => localStorage.removeItem('app-theme'));
2620
await page.reload();
2721

28-
const storedTheme = await page.evaluate(() => localStorage.getItem('app-theme'));
29-
expect(storedTheme).toBe('dark');
22+
const hasDarkClass = await page.evaluate(() =>
23+
document.documentElement.classList.contains('dark')
24+
);
25+
expect(hasDarkClass).toBe(true);
3026
});
3127

32-
test('applies dark theme when set', async ({ page }) => {
28+
test('explicit dark theme overrides system preference', async ({ page }) => {
29+
await page.emulateMedia({ colorScheme: 'light' });
3330
await page.goto('/login');
34-
35-
// Set dark theme
36-
await page.evaluate(() => {
37-
localStorage.setItem('app-theme', 'dark');
38-
document.documentElement.classList.add('dark');
39-
});
31+
await page.evaluate(() => localStorage.setItem('app-theme', 'dark'));
32+
await page.reload();
4033

4134
const hasDarkClass = await page.evaluate(() =>
4235
document.documentElement.classList.contains('dark')
4336
);
4437
expect(hasDarkClass).toBe(true);
4538
});
4639

47-
test('applies light theme when set', async ({ page }) => {
40+
test('explicit light theme overrides system preference', async ({ page }) => {
41+
await page.emulateMedia({ colorScheme: 'dark' });
4842
await page.goto('/login');
49-
50-
// Set light theme
51-
await page.evaluate(() => {
52-
localStorage.setItem('app-theme', 'light');
53-
document.documentElement.classList.remove('dark');
54-
});
43+
await page.evaluate(() => localStorage.setItem('app-theme', 'light'));
44+
await page.reload();
5545

5646
const hasDarkClass = await page.evaluate(() =>
5747
document.documentElement.classList.contains('dark')
@@ -61,15 +51,15 @@ test.describe('Theme', () => {
6151

6252
test('theme persists across page navigation', async ({ page }) => {
6353
await page.goto('/login');
64-
65-
// Set dark theme
6654
await page.evaluate(() => localStorage.setItem('app-theme', 'dark'));
67-
await page.reload();
68-
69-
// Navigate to another page
7055
await page.goto('/register');
7156

7257
const storedTheme = await page.evaluate(() => localStorage.getItem('app-theme'));
7358
expect(storedTheme).toBe('dark');
59+
60+
const hasDarkClass = await page.evaluate(() =>
61+
document.documentElement.classList.contains('dark')
62+
);
63+
expect(hasDarkClass).toBe(true);
7464
});
7565
});

0 commit comments

Comments
 (0)