Skip to content

Commit 376a993

Browse files
committed
✅(e2e) fix e2e tests by updating selectors
selectors were updated to prevent flaky test failures Signed-off-by: Cyril <c.gromoff@gmail.com>
1 parent a4a959f commit 376a993

File tree

4 files changed

+25
-9
lines changed

4 files changed

+25
-9
lines changed

src/frontend/apps/e2e/__tests__/app-impress/auth.setup.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ const saveStorageState = async (
2323
page.locator('header').first().getByRole('button', {
2424
name: 'Logout',
2525
}),
26-
).toBeVisible();
26+
).toBeVisible({ timeout: 10000 });
2727

2828
await page.context().storageState({
2929
path: storageState as string,

src/frontend/apps/e2e/__tests__/app-impress/home.spec.ts

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,13 @@ test.describe('Home page', () => {
1515
const header = page.locator('header').first();
1616
const footer = page.locator('footer').first();
1717
await expect(header).toBeVisible();
18-
await expect(
19-
header.getByRole('button', { name: /Language/ }),
20-
).toBeVisible();
21-
await expect(header.getByRole('img', { name: 'Docs logo' })).toBeVisible();
18+
19+
const languageButton = page.getByRole('button', {
20+
name: /Language|Select language/,
21+
});
22+
await expect(languageButton).toBeVisible();
23+
24+
await expect(header.getByTestId('header-icon-docs')).toBeVisible();
2225
await expect(header.getByRole('heading', { name: 'Docs' })).toBeVisible();
2326

2427
// Check the titles
@@ -65,20 +68,31 @@ test.describe('Home page', () => {
6568

6669
await page.goto('/docs/');
6770

71+
// Wait for the page to be fully loaded and responsive store to be initialized
72+
await page.waitForLoadState('domcontentloaded');
73+
74+
// Wait a bit more for the responsive store to be initialized
75+
await page.waitForTimeout(500);
76+
6877
// Check header content
6978
const header = page.locator('header').first();
7079
const footer = page.locator('footer').first();
7180
await expect(header).toBeVisible();
72-
await expect(
73-
header.getByRole('button', { name: /Language/ }),
74-
).toBeVisible();
81+
82+
// Check for language picker - it should be visible on desktop
83+
// Use a more flexible selector that works with both Header and HomeHeader
84+
const languageButton = page.getByRole('button', {
85+
name: /Language|Select language/,
86+
});
87+
await expect(languageButton).toBeVisible();
88+
7589
await expect(
7690
header.getByRole('button', { name: 'Les services de La Suite numé' }),
7791
).toBeVisible();
7892
await expect(
7993
header.getByRole('img', { name: 'Gouvernement Logo' }),
8094
).toBeVisible();
81-
await expect(header.getByRole('img', { name: 'Docs logo' })).toBeVisible();
95+
await expect(header.getByTestId('header-icon-docs')).toBeVisible();
8296
await expect(header.getByRole('heading', { name: 'Docs' })).toBeVisible();
8397

8498
// Check the titles

src/frontend/apps/impress/src/features/header/components/Header.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export const Header = () => {
4949
$margin={{ top: 'auto' }}
5050
>
5151
<IconDocs
52+
data-testid="header-icon-docs"
5253
aria-label={t('Docs Logo')}
5354
width={32}
5455
color={colorsTokens['primary-text']}

src/frontend/apps/impress/src/features/home/components/HomeHeader.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export const HomeHeader = () => {
6262
$height="fit-content"
6363
>
6464
<IconDocs
65+
data-testid="header-icon-docs"
6566
aria-label={t('Docs Logo')}
6667
width={32}
6768
color={colorsTokens['primary-text']}

0 commit comments

Comments
 (0)