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 } });