|
|
|
|
@@ -3,35 +3,35 @@ import { test, expect } from '@playwright/test';
|
|
|
|
|
test.describe('Language selector', () => {
|
|
|
|
|
test('shows DE, EN, ES buttons in the header', async ({ page }) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await expect(page.getByRole('banner').getByRole('button', { name: 'DE' })).toBeVisible();
|
|
|
|
|
await expect(page.getByRole('banner').getByRole('button', { name: 'EN' })).toBeVisible();
|
|
|
|
|
await expect(page.getByRole('banner').getByRole('button', { name: 'ES' })).toBeVisible();
|
|
|
|
|
await expect(page.getByRole('banner').getByRole('button', { name: 'DE', exact: true })).toBeVisible();
|
|
|
|
|
await expect(page.getByRole('banner').getByRole('button', { name: 'EN', exact: true })).toBeVisible();
|
|
|
|
|
await expect(page.getByRole('banner').getByRole('button', { name: 'ES', exact: true })).toBeVisible();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('switching to EN translates the navigation', async ({ page }) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await page.getByRole('banner').getByRole('button', { name: 'EN' }).click();
|
|
|
|
|
await page.getByRole('banner').getByRole('button', { name: 'EN', exact: true }).click();
|
|
|
|
|
await expect(page.getByRole('navigation').getByRole('link', { name: 'Documents' })).toBeVisible();
|
|
|
|
|
await expect(page.getByRole('navigation').getByRole('link', { name: 'Persons' })).toBeVisible();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('language choice persists after navigation', async ({ page }) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await page.getByRole('banner').getByRole('button', { name: 'EN' }).click();
|
|
|
|
|
await page.getByRole('banner').getByRole('button', { name: 'EN', exact: true }).click();
|
|
|
|
|
await page.goto('/persons');
|
|
|
|
|
await expect(page.getByRole('navigation').getByRole('link', { name: 'Documents' })).toBeVisible();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('switching back to DE restores German', async ({ page }) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await page.getByRole('banner').getByRole('button', { name: 'EN' }).click();
|
|
|
|
|
await page.getByRole('banner').getByRole('button', { name: 'DE' }).click();
|
|
|
|
|
await page.getByRole('banner').getByRole('button', { name: 'EN', exact: true }).click();
|
|
|
|
|
await page.getByRole('banner').getByRole('button', { name: 'DE', exact: true }).click();
|
|
|
|
|
await expect(page.getByRole('navigation').getByRole('link', { name: 'Dokumente' })).toBeVisible();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('active language button is visually highlighted', async ({ page }) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
const deBtn = page.getByRole('banner').getByRole('button', { name: 'DE' });
|
|
|
|
|
const deBtn = page.getByRole('banner').getByRole('button', { name: 'DE', exact: true });
|
|
|
|
|
await expect(deBtn).toHaveClass(/font-bold/);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|