From daaaa72ebb477a5e8afbbe50adaf9b145cb6567f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 25 Mar 2026 22:53:03 +0100 Subject: [PATCH] e2e: use exact name matching for sidebar link assertions New plugin nav items like "Catalog Graph" cause Playwright's substring-based getByRole name matching to find multiple elements when searching for "Catalog". Switch to exact: true. Signed-off-by: Patrik Oldsberg Made-with: Cursor --- packages/app/e2e-tests/app.test.ts | 8 ++++++-- .../templates/next-app/packages/app/e2e-tests/app.test.ts | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts index 6d16d134c7..d93b6eed32 100644 --- a/packages/app/e2e-tests/app.test.ts +++ b/packages/app/e2e-tests/app.test.ts @@ -25,7 +25,11 @@ test('App should render the welcome page', async ({ page }) => { // Verify the sidebar navigation is visible after sign-in await expect( - page.getByRole('navigation').getByRole('link', { name: 'Catalog' }), + page + .getByRole('navigation') + .getByRole('link', { name: 'Catalog', exact: true }), + ).toBeVisible(); + await expect( + page.getByRole('link', { name: 'APIs', exact: true }), ).toBeVisible(); - await expect(page.getByRole('link', { name: 'APIs' })).toBeVisible(); }); diff --git a/packages/create-app/templates/next-app/packages/app/e2e-tests/app.test.ts b/packages/create-app/templates/next-app/packages/app/e2e-tests/app.test.ts index 187e124bfa..d8dbc1faa8 100644 --- a/packages/create-app/templates/next-app/packages/app/e2e-tests/app.test.ts +++ b/packages/create-app/templates/next-app/packages/app/e2e-tests/app.test.ts @@ -24,6 +24,10 @@ test('App should render the welcome page', async ({ page }) => { await enterButton.click(); const nav = page.getByRole('navigation'); - await expect(nav.getByRole('link', { name: 'Catalog' })).toBeVisible(); - await expect(page.getByRole('link', { name: 'APIs' })).toBeVisible(); + await expect( + nav.getByRole('link', { name: 'Catalog', exact: true }), + ).toBeVisible(); + await expect( + page.getByRole('link', { name: 'APIs', exact: true }), + ).toBeVisible(); });