From dd50d89aabdd3a7dcc5257c82295e3bf05d2e04c Mon Sep 17 00:00:00 2001 From: surfingbytes Date: Wed, 29 Apr 2026 21:51:00 +0000 Subject: [PATCH] fix: prevent default-page redirect in project history e2e test The home route's beforeEnter guard redirects to the last visited project when defaultPage is LAST_VISITED (the new default). This caused the second test to never reach Home.vue after visiting projects, since page.goto('/') triggered a fresh page load where the redirect guard was not yet primed. Navigate to '/' first to set the sessionStorage redirect flag, then use the Overview menu link (SPA navigation) to return home. Made-with: Cursor --- .../tests/e2e/project/project-history.spec.ts | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/frontend/tests/e2e/project/project-history.spec.ts b/frontend/tests/e2e/project/project-history.spec.ts index 77191cead..51a4caa5c 100644 --- a/frontend/tests/e2e/project/project-history.spec.ts +++ b/frontend/tests/e2e/project/project-history.spec.ts @@ -76,11 +76,17 @@ test.describe('Project History', () => { }, false) } + // Navigate to home first so the default-page redirect guard is primed + // (sets sessionStorage flag), preventing later page.goto('/') from + // redirecting to the last visited project. + await page.goto('/') + await page.waitForLoadState('networkidle') + // Visit projects to build up history await visitProjectsToBuildHistory(page, projects) // Go to overview and verify section is visible - await page.goto('/') + await page.locator('nav.menu.top-menu a').filter({hasText: 'Overview'}).click() await expect(page.locator('body')).toContainText('Last viewed') // Disable the setting via API @@ -91,12 +97,9 @@ test.describe('Project History', () => { }, }) - // Reload and wait for the user settings to be fetched before asserting - const userResponsePromise = page.waitForResponse(resp => - resp.url().includes('/api/v1/user') && resp.request().method() === 'GET' && resp.status() === 200, - ) + // Reload and verify section is hidden await page.reload() - await userResponsePromise + await page.waitForLoadState('networkidle') await expect(page.locator('body')).not.toContainText('Last viewed') }) @@ -127,11 +130,8 @@ test.describe('Project History', () => { await visitProjectsToBuildHistory(page, projects) // Verify section is hidden - const hiddenResponsePromise = page.waitForResponse(resp => - resp.url().includes('/api/v1/user') && resp.request().method() === 'GET' && resp.status() === 200, - ) await page.goto('/') - await hiddenResponsePromise + await page.waitForLoadState('networkidle') await expect(page.locator('body')).not.toContainText('Last viewed') // Re-enable the setting @@ -141,12 +141,9 @@ test.describe('Project History', () => { }, }) - // Reload and wait for the user settings to be fetched before asserting - const visibleResponsePromise = page.waitForResponse(resp => - resp.url().includes('/api/v1/user') && resp.request().method() === 'GET' && resp.status() === 200, - ) + // Reload and verify section is visible again await page.reload() - await visibleResponsePromise + await page.waitForLoadState('networkidle') await expect(page.locator('body')).toContainText('Last viewed') }) })