diff --git a/src/HelpDesk.NewWeb/HelpDesk.NewWeb.csproj b/src/HelpDesk.NewWeb/HelpDesk.NewWeb.csproj index afbb424f..f337e9b8 100644 --- a/src/HelpDesk.NewWeb/HelpDesk.NewWeb.csproj +++ b/src/HelpDesk.NewWeb/HelpDesk.NewWeb.csproj @@ -29,7 +29,7 @@ - + diff --git a/src/Helpdesk.Infrastructure/Helpdesk.Infrastructure.csproj b/src/Helpdesk.Infrastructure/Helpdesk.Infrastructure.csproj index 408a1687..54f29e0a 100644 --- a/src/Helpdesk.Infrastructure/Helpdesk.Infrastructure.csproj +++ b/src/Helpdesk.Infrastructure/Helpdesk.Infrastructure.csproj @@ -11,7 +11,7 @@ - + diff --git a/tests/ux/admin-email-settings.spec.ts b/tests/ux/admin-email-settings.spec.ts index 46ccf374..32371c47 100644 --- a/tests/ux/admin-email-settings.spec.ts +++ b/tests/ux/admin-email-settings.spec.ts @@ -61,9 +61,9 @@ test('Email Settings is usable from the phone drawer without horizontal overflow await authenticate(page); await page.getByTestId('navigation-toggle').click(); - const drawer = page.getByTestId('app-navigation-drawer'); + const drawer = page.locator('[data-testid="app-navigation-drawer"]:visible'); await expect(drawer.getByRole('link', { name: 'Home' })).toBeVisible(); - await drawer.getByText('Administration', { exact: true }).click(); + await drawer.getByRole('button', { name: 'Toggle Administration' }).click(); await drawer.getByText('Email Settings', { exact: true }).click(); await drawer.getByRole('link', { name: 'Mailbox Configuration' }).click(); diff --git a/tests/ux/app-shell.spec.ts b/tests/ux/app-shell.spec.ts index a3a71e4c..2495f8f8 100644 --- a/tests/ux/app-shell.spec.ts +++ b/tests/ux/app-shell.spec.ts @@ -342,7 +342,15 @@ test('portrait tablet uses an aligned two-column catalogue and mobile drawer lif const cards = page.locator('.self-service-catalog-card'); await expect(cards.first()).toBeVisible(); await expect.poll(async () => (await getCatalogCardGeometry(page)).length).toBeGreaterThan(1); - const geometry = await getCatalogCardGeometry(page); + let geometry: CatalogCardGeometry[] = []; + await expect.poll(async () => { + geometry = await getCatalogCardGeometry(page); + return geometry.reduce((leftEdges, card) => + leftEdges.some((left) => Math.abs(left - card.cardLeft) <= 2) + ? leftEdges + : [...leftEdges, card.cardLeft], []).length; + }).toBe(2); + const columns = geometry.reduce((leftEdges, card) => leftEdges.some((left) => Math.abs(left - card.cardLeft) <= 2) ? leftEdges diff --git a/tests/ux/setup.spec.ts b/tests/ux/setup.spec.ts index ea4bc347..3d00ad1a 100644 --- a/tests/ux/setup.spec.ts +++ b/tests/ux/setup.spec.ts @@ -186,11 +186,11 @@ test('first-run setup initializes, survives restart, and supports isolated scope await reader.goto(`/incidents/${incident.id}`); await expect(reader.getByText('Colleague incident for reader acceptance', { exact: true })).toBeVisible(); await expect(reader.getByRole('button', { name: 'Save Changes', exact: true })).toBeDisabled(); - await expect(reader.getByLabel('Priority', { exact: true })).toBeDisabled(); + await expect(reader.getByRole('combobox', { name: 'Priority', exact: true })).toBeDisabled(); await expect(reader.getByRole('link', { name: 'Changes', exact: true })).toHaveCount(0); await writer.goto(`/incidents/${incident.id}`); await expect(writer.getByText('Colleague incident for reader acceptance', { exact: true })).toBeVisible(); - await expect(writer.getByLabel('Priority', { exact: true })).toBeEnabled(); + await expect(writer.getByRole('combobox', { name: 'Priority', exact: true })).toBeEnabled(); const denied = await reader.request.put(`/api/v1/incidents/${incident.id}`, { headers, data: { priority: 1 } }); expect(denied.status()).toBe(403); const permitted = await writer.request.put(`/api/v1/incidents/${incident.id}`, { headers, data: { priority: 1 } });