import { test, expect } from '@playwright/test'; const BRAND_NAVY = 'rgb(1, 40, 81)'; test.describe('Header — brand-navy background', () => { test('header background is brand-navy in light mode', async ({ page }) => { await page.goto('/'); await page.waitForSelector('[data-hydrated]'); const bg = await page.locator('header').evaluate((el) => getComputedStyle(el).backgroundColor); expect(bg).toBe(BRAND_NAVY); }); test('header background stays brand-navy after switching to dark mode', async ({ page }) => { await page.goto('/'); await page.waitForSelector('[data-hydrated]'); await page .getByRole('banner') .getByRole('button', { name: /dark mode/i }) .click(); await expect(page.locator('html')).toHaveAttribute('data-theme', 'dark'); const bg = await page.locator('header').evaluate((el) => getComputedStyle(el).backgroundColor); expect(bg).toBe(BRAND_NAVY); }); test('logo text is visible at 375px viewport', async ({ page }) => { await page.setViewportSize({ width: 375, height: 812 }); await page.goto('/'); await expect(page.getByRole('banner').getByText('Familienarchiv')).toBeVisible(); }); }); test.describe('Login page — AuthHeader', () => { test.use({ storageState: { cookies: [], origins: [] } }); test('login page has brand-navy header with language switcher', async ({ page }) => { await page.goto('/login'); const header = page.locator('header'); await expect(header).toBeVisible(); const bg = await header.evaluate((el) => getComputedStyle(el).backgroundColor); expect(bg).toBe(BRAND_NAVY); await expect(header.getByRole('button', { name: 'DE' })).toBeVisible(); }); });