forked from mirror/crumbs-original
33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
import { test, expect } from './helpers/fixtures.js';
|
|
|
|
test.describe('Dark Mode', () => {
|
|
test('Scenario: Dark mode can be toggled on and off', async ({ authenticatedPage: page }) => {
|
|
// When the user enables dark mode
|
|
await page.getByTestId('theme-toggle').click();
|
|
|
|
// Then the application is displayed in dark mode
|
|
const isDark = await page.evaluate(() =>
|
|
document.documentElement.classList.contains('dark')
|
|
);
|
|
expect(isDark).toBe(true);
|
|
|
|
// When the user disables dark mode
|
|
await page.getByTestId('theme-toggle').click();
|
|
|
|
// Then the application is displayed in light mode
|
|
const isLight = await page.evaluate(() =>
|
|
!document.documentElement.classList.contains('dark')
|
|
);
|
|
expect(isLight).toBe(true);
|
|
});
|
|
|
|
test('Scenario: Theme preference is remembered across page loads', async ({ authenticatedPage: page }) => {
|
|
// When the user enables dark mode
|
|
await page.getByTestId('theme-toggle').click();
|
|
|
|
// Then the preference is persisted
|
|
const theme = await page.evaluate(() => localStorage.getItem('theme'));
|
|
expect(theme).toBeTruthy();
|
|
});
|
|
});
|