From f9325772bdedeb0edc92cf62c67d730111d216ea Mon Sep 17 00:00:00 2001 From: privilegedescalation-engineer Date: Wed, 25 Mar 2026 01:55:02 +0000 Subject: [PATCH 1/2] fix(e2e): use specific regex for nodes page heading MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The /node/i regex was too broad and matched both the page heading 'Intel GPU — Nodes' and the empty state 'No GPU Nodes Found', causing a strict mode violation in Playwright. Use /intel gpu.*nodes/i to match only the actual page heading, which contains 'Intel GPU' before 'Nodes'. --- e2e/intel-gpu.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/intel-gpu.spec.ts b/e2e/intel-gpu.spec.ts index 7b58492..8c3ef5c 100644 --- a/e2e/intel-gpu.spec.ts +++ b/e2e/intel-gpu.spec.ts @@ -66,7 +66,7 @@ test.describe('Intel GPU plugin smoke tests', () => { }); await page.goto('/c/main/intel-gpu/nodes'); - await expect(page.getByRole('heading', { name: /node/i })).toBeVisible({ timeout: 15_000 }); + await expect(page.getByRole('heading', { name: /intel gpu.*nodes/i })).toBeVisible({ timeout: 15_000 }); await page.goto('/c/main/intel-gpu/pods'); await expect(page.getByRole('heading', { name: /pod/i })).toBeVisible({ timeout: 15_000 }); -- 2.52.0 From e565ecbd4cfc92147950130a566bd95ec882e80b Mon Sep 17 00:00:00 2001 From: privilegedescalation-engineer Date: Wed, 25 Mar 2026 05:07:11 +0000 Subject: [PATCH 2/2] fix(e2e): use specific regex for pods, metrics, and device-plugins page headings Fix overly-broad heading selectors that cause Playwright strict mode violations: - /pods route: /pod/i -> /intel gpu.*pods/i - /metrics route: /metric/i -> /intel gpu.*metrics/i - /device-plugins route: /device plugin/i -> /intel gpu.*device plugins/i Same specificity pattern as nodes page fix in PR #36. Fixes GitHub #37. --- e2e/intel-gpu.spec.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e/intel-gpu.spec.ts b/e2e/intel-gpu.spec.ts index 8c3ef5c..aad1651 100644 --- a/e2e/intel-gpu.spec.ts +++ b/e2e/intel-gpu.spec.ts @@ -43,7 +43,7 @@ test.describe('Intel GPU plugin smoke tests', () => { test('device plugins page renders or shows empty state', async ({ page }) => { await page.goto('/c/main/intel-gpu/device-plugins'); - await expect(page.getByRole('heading', { name: /device plugin/i })).toBeVisible({ + await expect(page.getByRole('heading', { name: /intel gpu.*device plugins/i })).toBeVisible({ timeout: 15_000, }); @@ -69,10 +69,10 @@ test.describe('Intel GPU plugin smoke tests', () => { await expect(page.getByRole('heading', { name: /intel gpu.*nodes/i })).toBeVisible({ timeout: 15_000 }); await page.goto('/c/main/intel-gpu/pods'); - await expect(page.getByRole('heading', { name: /pod/i })).toBeVisible({ timeout: 15_000 }); + await expect(page.getByRole('heading', { name: /intel gpu.*pods/i })).toBeVisible({ timeout: 15_000 }); await page.goto('/c/main/intel-gpu/metrics'); - await expect(page.getByRole('heading', { name: /metric/i })).toBeVisible({ timeout: 15_000 }); + await expect(page.getByRole('heading', { name: /intel gpu.*metrics/i })).toBeVisible({ timeout: 15_000 }); }); test('plugin settings page shows intel-gpu plugin entry', async ({ page }) => { -- 2.52.0