diff --git a/e2e/intel-gpu.spec.ts b/e2e/intel-gpu.spec.ts index 104380d..3aae3ef 100644 --- a/e2e/intel-gpu.spec.ts +++ b/e2e/intel-gpu.spec.ts @@ -19,16 +19,18 @@ test.describe('Intel GPU plugin smoke tests', () => { // Should navigate to the overview route await expect(page).toHaveURL(/\/intel-gpu$/); - await expect(page.getByRole('heading', { name: /Intel GPU — Overview/i })).toBeVisible(); + await expect( + page.locator('main').getByRole('heading', { name: 'Intel GPU — Overview' }) + ).toBeVisible(); }); test('overview page renders GPU device list or empty state', async ({ page }) => { await page.goto('/c/main/intel-gpu'); // Overview heading should be present - await expect(page.getByRole('heading', { name: /Intel GPU — Overview/i })).toBeVisible({ - timeout: 15_000, - }); + await expect( + page.locator('main').getByRole('heading', { name: 'Intel GPU — Overview' }) + ).toBeVisible({ timeout: 15_000 }); // Either a populated table/list or an empty-state indicator must be visible const hasTable = await page.locator('table').first().isVisible().catch(() => false); @@ -43,9 +45,9 @@ 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: /Intel GPU — Device Plugins/i })).toBeVisible({ - timeout: 15_000, - }); + await expect( + page.locator('main').getByRole('heading', { name: 'Intel GPU — Device Plugins' }) + ).toBeVisible({ timeout: 15_000 }); const hasTable = await page.locator('table').first().isVisible().catch(() => false); const hasEmptyState = await page @@ -61,18 +63,24 @@ test.describe('Intel GPU plugin smoke tests', () => { // not after clicking the parent entry from the overview. Test route // accessibility via direct navigation — each route must render its heading. await page.goto('/c/main/intel-gpu'); - await expect(page.getByRole('heading', { name: /Intel GPU — Overview/i })).toBeVisible({ - timeout: 15_000, - }); + await expect( + page.locator('main').getByRole('heading', { name: 'Intel GPU — Overview' }) + ).toBeVisible({ timeout: 15_000 }); await page.goto('/c/main/intel-gpu/nodes'); - await expect(page.getByRole('heading', { name: /Intel GPU — Nodes/i })).toBeVisible({ timeout: 15_000 }); + await expect( + page.locator('main').getByRole('heading', { name: 'Intel GPU — Nodes' }) + ).toBeVisible({ timeout: 15_000 }); await page.goto('/c/main/intel-gpu/pods'); - await expect(page.getByRole('heading', { name: /Intel GPU — Pods/i })).toBeVisible({ timeout: 15_000 }); + await expect( + page.locator('main').getByRole('heading', { name: 'Intel GPU — Pods' }) + ).toBeVisible({ timeout: 15_000 }); await page.goto('/c/main/intel-gpu/metrics'); - await expect(page.getByRole('heading', { name: /Intel GPU — Metrics/i })).toBeVisible({ timeout: 15_000 }); + await expect( + page.locator('main').getByRole('heading', { name: 'Intel GPU — Metrics' }) + ).toBeVisible({ timeout: 15_000 }); }); test('plugin settings page shows intel-gpu plugin entry', async ({ page }) => { diff --git a/package-lock.json b/package-lock.json index 1aa33fd..74b7397 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11600,9 +11600,9 @@ } }, "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index 15af471..3732196 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ }, "overrides": { "tar": "^7.5.11", - "undici": "^7.24.3" + "undici": "^7.24.3", + "lodash": ">=4.18.0" } }