2024-07-01 19:51:00 +02:00
|
|
|
import { BrowserContext, Page, expect, test } from '@playwright/test';
|
|
|
|
|
import { LANGUAGES_ALLOWED } from 'app-desk/src/i18n/conf';
|
2024-01-18 14:07:43 +01:00
|
|
|
|
2024-01-24 15:27:11 +01:00
|
|
|
import { keyCloakSignIn } from './common';
|
2024-01-18 14:07:43 +01:00
|
|
|
|
2024-01-24 15:27:11 +01:00
|
|
|
test.describe('Language', () => {
|
2024-07-01 19:51:00 +02:00
|
|
|
test.beforeEach(async ({ page, browserName }) => {
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await keyCloakSignIn(page, browserName);
|
|
|
|
|
});
|
|
|
|
|
|
2024-02-05 11:36:03 +01:00
|
|
|
test('checks the language picker', async ({ page }) => {
|
2024-11-13 16:54:54 +01:00
|
|
|
await expect(page.getByText('Groups')).toBeVisible();
|
2024-01-19 10:43:09 +01:00
|
|
|
|
2024-01-24 15:27:11 +01:00
|
|
|
const header = page.locator('header').first();
|
2024-02-05 11:36:03 +01:00
|
|
|
await header.getByRole('combobox').getByText('EN').click();
|
|
|
|
|
await header.getByRole('option', { name: 'FR' }).click();
|
|
|
|
|
await expect(header.getByRole('combobox').getByText('FR')).toBeVisible();
|
2024-01-18 14:07:43 +01:00
|
|
|
|
2024-11-13 16:54:54 +01:00
|
|
|
await expect(page.getByText('Groupes')).toBeVisible();
|
2024-01-18 14:07:43 +01:00
|
|
|
});
|
2024-07-01 19:20:55 +02:00
|
|
|
|
|
|
|
|
test('checks lang attribute of html tag updates when user changes language', async ({
|
|
|
|
|
page,
|
|
|
|
|
}) => {
|
|
|
|
|
const header = page.locator('header').first();
|
|
|
|
|
|
|
|
|
|
await header.getByRole('combobox').getByText('EN').click();
|
|
|
|
|
const html = page.locator('html');
|
|
|
|
|
|
|
|
|
|
await expect(html).toHaveAttribute('lang', 'en');
|
|
|
|
|
|
|
|
|
|
await header.getByRole('option', { name: 'FR' }).click();
|
|
|
|
|
|
|
|
|
|
await expect(html).toHaveAttribute('lang', 'fr');
|
|
|
|
|
});
|
2024-01-18 14:07:43 +01:00
|
|
|
});
|
2024-07-01 19:51:00 +02:00
|
|
|
|
|
|
|
|
test.describe('Default language', () => {
|
|
|
|
|
LANGUAGES_ALLOWED.forEach((language) => {
|
|
|
|
|
test(`checks lang attribute of html tag has right value by default for ${language} language`, async ({
|
|
|
|
|
browser,
|
|
|
|
|
browserName,
|
|
|
|
|
}) => {
|
|
|
|
|
const context: BrowserContext = await browser.newContext({
|
|
|
|
|
locale: language,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const page: Page = await context.newPage();
|
|
|
|
|
|
|
|
|
|
await page.goto('/');
|
|
|
|
|
await keyCloakSignIn(page, browserName);
|
|
|
|
|
|
|
|
|
|
await expect(page.locator('html')).toHaveAttribute('lang', language);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|