M36: deepen operational and mobile UX
This commit is contained in:
@@ -86,6 +86,28 @@ test("key demo pages load without console errors", async ({ page }) => {
|
||||
expect(errors, `Unexpected console errors: ${errors.join("\n")}`).toEqual([]);
|
||||
});
|
||||
|
||||
test("mobile quality workbench keeps filters compact and bulk actions reachable", async ({ page }) => {
|
||||
await page.setViewportSize({ width: 390, height: 844 });
|
||||
await page.goto("/login");
|
||||
await page.getByRole("button", { name: "Verken als Operationsmanager" }).click();
|
||||
await expect(page).toHaveURL(/\/dashboard$/);
|
||||
await page.goto("/data-quality?status=open");
|
||||
|
||||
const filterButton = page.getByRole("button", { name: /Filters/ });
|
||||
await expect(filterButton).toBeVisible();
|
||||
await expect(page.locator("#quality-filters")).toBeHidden();
|
||||
await filterButton.click();
|
||||
await expect(page.locator("#quality-filters")).toBeVisible();
|
||||
|
||||
await page.getByRole("button", { name: "Zichtbare problemen selecteren" }).click();
|
||||
await expect(page.getByRole("region", { name: "Geselecteerde werkvoorraad bijwerken" })).toBeVisible();
|
||||
const checked = await page.locator(".quality-table tbody input[type=checkbox]:checked").count();
|
||||
expect(checked).toBeGreaterThan(1);
|
||||
expect(await page.evaluate(() => document.documentElement.scrollWidth)).toBeLessThanOrEqual(
|
||||
await page.evaluate(() => document.documentElement.clientWidth + 1),
|
||||
);
|
||||
});
|
||||
|
||||
test("status-recommendation panel is fully keyboard operable, respects reduced motion, and never signals status by colour alone", async ({
|
||||
page,
|
||||
request,
|
||||
|
||||
@@ -28,7 +28,12 @@ test("operator can create and cancel a booking through the UI", async ({ page, r
|
||||
await page.getByRole("button", { name: "Boeking aanmaken" }).click();
|
||||
await expect(page).toHaveURL(/\/bookings\/BK-/);
|
||||
await expect(page.getByText("gereserveerd", { exact: true })).toBeVisible();
|
||||
await page.getByLabel("Reden").fill("Klant annuleert de geplande rit");
|
||||
await expect(page.getByRole("heading", { name: "Vereisten controleren" })).toBeVisible();
|
||||
await expect(page.getByRole("heading", { name: "Voertuig uitchecken" })).toHaveCount(0);
|
||||
await page.getByLabel("Controlebewijs").fill("Rijbewijs en huurvoorwaarden gecontroleerd");
|
||||
await page.getByRole("button", { name: "Vereisten bevestigen" }).click();
|
||||
await expect(page.getByRole("heading", { name: "Voertuig uitchecken" })).toBeVisible();
|
||||
await page.getByLabel("Reden", { exact: true }).fill("Klant annuleert de geplande rit");
|
||||
await page.getByRole("button", { name: "Annulering bevestigen" }).click();
|
||||
await expect(page.getByText("geannuleerd", { exact: true })).toBeVisible();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user