From 2598f3649aaf81bcf49c87d28177978a58387350 Mon Sep 17 00:00:00 2001 From: daproclaima Date: Mon, 1 Jul 2024 19:51:00 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=85(e2e)=20check=20default=20lang=20attri?= =?UTF-8?q?but=20of=20html=20tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Asserts that default lang attribute of html tag matches with the language used by default in browser for supported languages. --- .../e2e/__tests__/app-desk/language.spec.ts | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/src/frontend/apps/e2e/__tests__/app-desk/language.spec.ts b/src/frontend/apps/e2e/__tests__/app-desk/language.spec.ts index fd2ccdf..3b82299 100644 --- a/src/frontend/apps/e2e/__tests__/app-desk/language.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-desk/language.spec.ts @@ -1,13 +1,14 @@ -import { expect, test } from '@playwright/test'; +import { BrowserContext, Page, expect, test } from '@playwright/test'; +import { LANGUAGES_ALLOWED } from 'app-desk/src/i18n/conf'; import { keyCloakSignIn } from './common'; -test.beforeEach(async ({ page, browserName }) => { - await page.goto('/'); - await keyCloakSignIn(page, browserName); -}); - 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.getByRole('button', { @@ -27,7 +28,6 @@ test.describe('Language', () => { ).toBeVisible(); }); - // test('checks lang attribute of html tag has same default value as defined'); test('checks lang attribute of html tag updates when user changes language', async ({ page, }) => { @@ -43,3 +43,23 @@ test.describe('Language', () => { 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); + }); + }); +});