This creates a bunch of accounts with various profiles to allow testing in a specific "mode"
58 lines
1.7 KiB
TypeScript
58 lines
1.7 KiB
TypeScript
import { BrowserContext, Page, expect, test } from '@playwright/test';
|
|
import { LANGUAGES_ALLOWED } from 'app-desk/src/i18n/conf';
|
|
|
|
import { keyCloakSignIn } from './common';
|
|
|
|
test.describe('Language', () => {
|
|
test.beforeEach(async ({ page, browserName }) => {
|
|
await page.goto('/');
|
|
await keyCloakSignIn(page, browserName);
|
|
});
|
|
|
|
test('checks the language picker', async ({ page }) => {
|
|
await expect(page.getByText('Groups')).toBeVisible();
|
|
|
|
const header = page.locator('header').first();
|
|
await header.getByRole('combobox').getByText('EN').click();
|
|
await header.getByRole('option', { name: 'FR' }).click();
|
|
await expect(header.getByRole('combobox').getByText('FR')).toBeVisible();
|
|
|
|
await expect(page.getByText('Groupes')).toBeVisible();
|
|
});
|
|
|
|
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');
|
|
});
|
|
});
|
|
|
|
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);
|
|
});
|
|
});
|
|
});
|