From f2f57bb9993344ec3b6a409027e6b31f7d3f8a21 Mon Sep 17 00:00:00 2001 From: Mathias STRASSER Date: Wed, 25 Feb 2026 20:42:52 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20Corriger=20les=20tests=20E2E=20de=20bloc?= =?UTF-8?q?age=20utilisateur=20qui=20=C3=A9chouent=20de=20mani=C3=A8re=20i?= =?UTF-8?q?ntermittente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sur Firefox, l'hydration Svelte peut prendre plus de temps que sur Chromium. L'assertion tabs.nth(1).toHaveAttribute manquait de timeout dans periods.spec.ts, et le formulaire de login n'était pas complètement hydraté avant interaction dans admin-responsive-nav.spec.ts. --- frontend/e2e/admin-responsive-nav.spec.ts | 1 + frontend/e2e/periods.spec.ts | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/e2e/admin-responsive-nav.spec.ts b/frontend/e2e/admin-responsive-nav.spec.ts index 4e1816d..743e51f 100644 --- a/frontend/e2e/admin-responsive-nav.spec.ts +++ b/frontend/e2e/admin-responsive-nav.spec.ts @@ -27,6 +27,7 @@ test.describe('Admin Responsive Navigation', () => { async function loginAsAdmin(page: import('@playwright/test').Page) { await page.goto(`${ALPHA_URL}/login`); + await page.waitForLoadState('networkidle'); await page.locator('#email').fill(ADMIN_EMAIL); await page.locator('#password').fill(ADMIN_PASSWORD); await Promise.all([ diff --git a/frontend/e2e/periods.spec.ts b/frontend/e2e/periods.spec.ts index 56d7e92..c8eff24 100644 --- a/frontend/e2e/periods.spec.ts +++ b/frontend/e2e/periods.spec.ts @@ -89,8 +89,8 @@ test.describe('Periods Management (Story 2.3)', () => { await page.goto(`${ALPHA_URL}/admin/academic-year/periods`); const tabs = page.getByRole('tab'); - // Middle tab (current) should be active - await expect(tabs.nth(1)).toHaveAttribute('aria-selected', 'true'); + // Middle tab (current) should be active — wait for Svelte hydration + await expect(tabs.nth(1)).toHaveAttribute('aria-selected', 'true', { timeout: 10000 }); }); test('can switch between year tabs', async ({ page }) => {