From 3e42e46320a4dae87c48a9d8d66d60e1019bc012 Mon Sep 17 00:00:00 2001 From: Chris Farhood Date: Tue, 5 May 2026 13:58:58 +0000 Subject: [PATCH] fix(e2e): use .first() to handle strict mode violations (PRI-701) Strict mode violations: - /sealed.secrets/i matches both 'Sealed Secrets' and 'All Sealed Secrets' buttons - /sealing.key/i may match multiple headings Using .first() for heading assertions to avoid strict mode. --- e2e/sealed-secrets.spec.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/e2e/sealed-secrets.spec.ts b/e2e/sealed-secrets.spec.ts index bdb0fb6..a6613e7 100644 --- a/e2e/sealed-secrets.spec.ts +++ b/e2e/sealed-secrets.spec.ts @@ -65,11 +65,11 @@ test.describe('Sealed Secrets plugin smoke tests', () => { await page.goto('/c/main/sealedsecrets'); const sidebar = await waitForSidebar(page); - const sealedBtn = sidebar.getByRole('button', { name: /sealed.secrets/i }); + const sealedBtn = sidebar.getByRole('button', { name: /sealed.secrets/i }).first(); await sealedBtn.click(); await page.waitForLoadState('networkidle'); - await expect(page.getByRole('heading', { name: /sealed.secrets/i })).toBeVisible({ timeout: 15_000 }); + await expect(page.getByRole('heading', { name: /sealed.secrets/i }).first()).toBeVisible({ timeout: 15_000 }); const keysLink = sidebar.getByRole('link', { name: /sealing.key/i }); await expect(keysLink).toBeVisible(); @@ -77,7 +77,7 @@ test.describe('Sealed Secrets plugin smoke tests', () => { await page.waitForLoadState('networkidle'); await expect(page).toHaveURL(/\/sealedsecrets\/keys$/); - await expect(page.getByRole('heading', { name: /sealing.key/i })).toBeVisible(); + await expect(page.getByRole('heading', { name: /sealing.key/i }).first()).toBeVisible(); const allSecretsLink = sidebar.getByRole('link', { name: /all sealed secrets/i }); await expect(allSecretsLink).toBeVisible(); @@ -85,13 +85,13 @@ test.describe('Sealed Secrets plugin smoke tests', () => { await page.waitForLoadState('networkidle'); await expect(page).toHaveURL(/\/sealedsecrets(?!\/keys)/); - await expect(page.getByRole('heading', { name: /sealed.secrets/i })).toBeVisible(); + await expect(page.getByRole('heading', { name: /sealed.secrets/i }).first()).toBeVisible(); }); test('plugin settings page shows sealed-secrets plugin entry', async ({ page }) => { await page.goto('/settings/plugins'); await page.waitForLoadState('networkidle'); - await page.waitForSelector('[class*="PluginList"], [class*="plugins"], table, list', { timeout: 10_000 }).catch(() => {}); + await page.waitForSelector('table', { timeout: 10_000 }).catch(() => {}); const pluginEntry = page.locator('text=/sealed.secrets/i').first(); await expect(pluginEntry).toBeVisible({ timeout: 30_000 });