M18: implement operational workspaces

This commit is contained in:
NuklearRabbit
2026-08-10 12:41:28 +02:00
parent 8030753dbc
commit fe06ff75a1
33 changed files with 1082 additions and 95 deletions
+23 -2
View File
@@ -33,7 +33,7 @@ test("operator can create and cancel a booking through the UI", async ({ page, r
await expect(page.getByText("geannuleerd", { exact: true })).toBeVisible();
});
test("manager can create and deactivate an operational user", async ({ page, request }) => {
test("manager can create, edit and deactivate an operational user", async ({ page, request }) => {
await reset(request);
await login(page);
await page.goto("/users");
@@ -41,12 +41,33 @@ test("manager can create and deactivate an operational user", async ({ page, req
await page.getByLabel("E-mail").fill("e2e.planner@example.test");
await page.getByLabel("Tijdelijk wachtwoord").fill("secure-e2e-password");
await page.getByRole("button", { name: "Gebruiker toevoegen" }).click();
const row = page.getByRole("row", { name: /E2E Planner/ });
let row = page.getByRole("row", { name: /E2E Planner/ });
await expect(row).toBeVisible();
await row.getByRole("button", { name: "Bewerken" }).click();
const editor = page.locator(".user-edit");
await editor.getByLabel("Naam").fill("E2E Senior Planner");
await editor.getByLabel("Rol").selectOption("operations_manager");
await editor.getByLabel("Nieuw wachtwoord").fill("updated-e2e-password");
await editor.getByRole("button", { name: "Wijzigingen opslaan" }).click();
row = page.getByRole("row", { name: /E2E Senior Planner/ });
await expect(row.getByText("Operationeel beheerder")).toBeVisible();
await row.getByRole("button", { name: "Deactiveren" }).click();
await expect(row.getByText("inactief", { exact: true })).toBeVisible();
});
test("manager can assign data-quality work from the queue", async ({ page, request }) => {
await reset(request);
await login(page);
await page.goto("/data-quality?status=open");
const firstRow = page.locator(".data-table tbody tr").first();
await firstRow.getByRole("checkbox").check();
const assignee = page.getByLabel("Toewijzen aan");
await assignee.selectOption({ index: 1 });
const selectedLabel = await assignee.locator("option:checked").textContent();
await page.getByRole("button", { name: "Werkvoorraad bijwerken" }).click();
await expect(firstRow).toContainText(selectedLabel ?? "");
});
test("manager can record maintenance and release a safe vehicle", async ({ page, request }) => {
await reset(request);
const vehicles = await (await request.get("/api/v1/vehicles?status=available")).json();