diff --git a/tests/e2e/dashboard.spec.ts b/tests/e2e/dashboard.spec.ts index cd4fa473..ff5dd960 100644 --- a/tests/e2e/dashboard.spec.ts +++ b/tests/e2e/dashboard.spec.ts @@ -16,7 +16,7 @@ test.describe('Dashboard home page', () => { test('shows stat cards for Proxy Hosts, Certificates, and Access Lists', async ({ page }) => { // Stat card labels are

inside link cards — match via the parent link - await expect(page.getByRole('link', { name: /\d+\s*Proxy Hosts/ })).toBeVisible(); + await expect(page.getByRole('link', { name: /^\d+\s+Proxy Hosts/ })).toBeVisible(); await expect(page.getByRole('link', { name: /\d+\s*Certificates/ })).toBeVisible(); await expect(page.getByRole('link', { name: /\d+\s*Access Lists/ })).toBeVisible(); }); diff --git a/tests/e2e/groups.spec.ts b/tests/e2e/groups.spec.ts index e60a713b..2a3f905a 100644 --- a/tests/e2e/groups.spec.ts +++ b/tests/e2e/groups.spec.ts @@ -94,7 +94,6 @@ test.describe('Groups page', () => { test('shows empty state when no groups exist', async ({ page }) => { // If there are no groups, the empty state text should be visible // (This may or may not show depending on existing data) - const emptyText = page.getByText('No groups yet. Create one to organize user access.'); const newGroupBtn = page.getByRole('button', { name: /new group/i }); // At minimum the button should always be visible await expect(newGroupBtn).toBeVisible(); diff --git a/tests/e2e/link-account.spec.ts b/tests/e2e/link-account.spec.ts index 6d1a0afc..bc4be626 100644 --- a/tests/e2e/link-account.spec.ts +++ b/tests/e2e/link-account.spec.ts @@ -25,7 +25,7 @@ test.describe('Link Account page', () => { await expect(page).toHaveURL(/\/login/, { timeout: 10_000 }); }); - test('redirects authenticated users to /', async ({ page, context }) => { + test('redirects authenticated users to /', async ({ page }) => { // First log in await page.goto('http://localhost:3000/login'); await page.getByRole('textbox', { name: /username/i }).fill('testadmin'); diff --git a/tests/e2e/role-access.spec.ts b/tests/e2e/role-access.spec.ts index 51d6a51b..3fc3430a 100644 --- a/tests/e2e/role-access.spec.ts +++ b/tests/e2e/role-access.spec.ts @@ -303,7 +303,7 @@ test.describe('Role-based access control', () => { const page = await adminContext.newPage(); await page.goto('/'); await expect(page.getByRole('link', { name: 'Overview' })).toBeVisible(); - await expect(page.getByRole('link', { name: 'Proxy Hosts' })).toBeVisible(); + await expect(page.getByRole('link', { name: 'Proxy Hosts', exact: true })).toBeVisible(); await expect(page.getByRole('link', { name: 'Settings' })).toBeVisible(); await expect(page.getByRole('link', { name: 'Users' })).toBeVisible(); await page.close(); diff --git a/tests/e2e/users.spec.ts b/tests/e2e/users.spec.ts index 46e17b56..bf1c0032 100644 --- a/tests/e2e/users.spec.ts +++ b/tests/e2e/users.spec.ts @@ -17,7 +17,7 @@ test.describe('Users page', () => { }); test('displays at least one user (the admin)', async ({ page }) => { - await expect(page.getByText(/1 user/)).toBeVisible({ timeout: 5000 }); + await expect(page.getByText(/\d+ users?/)).toBeVisible({ timeout: 5000 }); }); test('search input filters users', async ({ page }) => {