diff --git a/admin-compliance/e2e/specs/iace-module.spec.ts b/admin-compliance/e2e/specs/iace-module.spec.ts index e385fc7..1b2f789 100644 --- a/admin-compliance/e2e/specs/iace-module.spec.ts +++ b/admin-compliance/e2e/specs/iace-module.spec.ts @@ -66,9 +66,11 @@ async function dismissCookieBanner(page: Page) { /** Navigate, wait for async data, and dismiss cookie overlay. */ async function goTo(page: Page, path: string) { - await page.goto(`${BASE}${path}`, { waitUntil: 'networkidle', timeout: 30000 }) + // Use domcontentloaded instead of networkidle — some IACE pages have + // long-running background requests that prevent networkidle from resolving. + await page.goto(`${BASE}${path}`, { waitUntil: 'domcontentloaded', timeout: 30000 }) await dismissCookieBanner(page) - await page.waitForTimeout(2000) + await page.waitForTimeout(3000) // Wait for React hydration + API fetches await dismissCookieBanner(page) // Retry after content load } diff --git a/admin-compliance/e2e/specs/iace-project-tabs.spec.ts b/admin-compliance/e2e/specs/iace-project-tabs.spec.ts index a0d188d..118e50e 100644 --- a/admin-compliance/e2e/specs/iace-project-tabs.spec.ts +++ b/admin-compliance/e2e/specs/iace-project-tabs.spec.ts @@ -15,12 +15,12 @@ async function dismissBanner(page: import('@playwright/test').Page) { test.describe('IACE Project — All Tabs', () => { test.beforeEach(async ({ page }) => { - await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}`, { waitUntil: 'networkidle' }) + await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}`, { waitUntil: 'domcontentloaded' }) await dismissBanner(page) }) test('Overview page loads without error', async ({ page }) => { - await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}`, { waitUntil: 'networkidle' }) + await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}`, { waitUntil: 'domcontentloaded' }) await dismissBanner(page) await page.waitForTimeout(2000) const body = await page.textContent('body') @@ -30,55 +30,55 @@ test.describe('IACE Project — All Tabs', () => { }) test('Components tab loads', async ({ page }) => { - await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/components`, { waitUntil: 'networkidle' }) + await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/components`, { waitUntil: 'domcontentloaded' }) const body = await page.textContent('body') expect(body).not.toContain('Application error') }) test('Classification tab loads', async ({ page }) => { - await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/classification`, { waitUntil: 'networkidle' }) + await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/classification`, { waitUntil: 'domcontentloaded' }) const body = await page.textContent('body') expect(body).not.toContain('Application error') }) test('Hazards tab loads', async ({ page }) => { - await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/hazards`, { waitUntil: 'networkidle' }) + await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/hazards`, { waitUntil: 'domcontentloaded' }) const body = await page.textContent('body') expect(body).not.toContain('Application error') }) test('Mitigations tab loads', async ({ page }) => { - await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/mitigations`, { waitUntil: 'networkidle' }) + await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/mitigations`, { waitUntil: 'domcontentloaded' }) const body = await page.textContent('body') expect(body).not.toContain('Application error') }) test('Verification tab loads', async ({ page }) => { - await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/verification`, { waitUntil: 'networkidle' }) + await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/verification`, { waitUntil: 'domcontentloaded' }) const body = await page.textContent('body') expect(body).not.toContain('Application error') }) test('Evidence tab loads', async ({ page }) => { - await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/evidence`, { waitUntil: 'networkidle' }) + await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/evidence`, { waitUntil: 'domcontentloaded' }) const body = await page.textContent('body') expect(body).not.toContain('Application error') }) test('Tech-File tab loads', async ({ page }) => { - await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/tech-file`, { waitUntil: 'networkidle' }) + await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/tech-file`, { waitUntil: 'domcontentloaded' }) const body = await page.textContent('body') expect(body).not.toContain('Application error') }) test('Monitoring tab loads', async ({ page }) => { - await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/monitoring`, { waitUntil: 'networkidle' }) + await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/monitoring`, { waitUntil: 'domcontentloaded' }) const body = await page.textContent('body') expect(body).not.toContain('Application error') }) test('Interview page loads — Grenzen & Verwendung form', async ({ page }) => { - await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/interview`, { waitUntil: 'networkidle' }) + await page.goto(`${BASE}/sdk/iace/${PROJECT_ID}/interview`, { waitUntil: 'domcontentloaded' }) await dismissBanner(page) await page.waitForTimeout(2000) const body = await page.textContent('body')