Resume active self-serve washes for authenticated customers across devices. Update OpenAPI, UI components, and extend E2E/unit tests.
This commit is contained in:
@@ -191,6 +191,74 @@ test.describe("Self-serve wash", () => {
|
||||
await expect(page.getByTestId("self-serve-nav-complete")).toBeVisible();
|
||||
});
|
||||
|
||||
test("start route resumes the authenticated customer's active server wash from another device", async ({ page }) => {
|
||||
const requests = captureSelfServeGatewayRequests(page);
|
||||
|
||||
await mockApi(page, {
|
||||
authenticated: true,
|
||||
permissions: ["user"],
|
||||
sessionData: {
|
||||
customer_number: 12345679,
|
||||
},
|
||||
selfServe: {
|
||||
inProgressByLaneId: {
|
||||
9: {
|
||||
lane_id: 9,
|
||||
in_progress: true,
|
||||
session: {
|
||||
id: 704,
|
||||
lane_id: 9,
|
||||
department_id: 2,
|
||||
reg: "CD67890",
|
||||
customer_number: 12345679,
|
||||
vehicle_type_id: 2,
|
||||
machine_relay_enabled: true,
|
||||
wash_started_at: "2026-04-28 10:15:00",
|
||||
status: "MACHINE_STARTED",
|
||||
},
|
||||
customer: { customer_number: 12345679 },
|
||||
vehicle: { reg: "CD67890", type: 2 },
|
||||
},
|
||||
},
|
||||
summaryBySessionId: {
|
||||
704: {
|
||||
session: {
|
||||
id: 704,
|
||||
lane_id: 9,
|
||||
reg: "CD67890",
|
||||
status: "MACHINE_STARTED",
|
||||
allowed: true,
|
||||
vehicle_type_id: 2,
|
||||
},
|
||||
lane: { id: 9, name: "9", department: 2 },
|
||||
questions: [],
|
||||
conditions: [],
|
||||
rules: [],
|
||||
tasks: [],
|
||||
events: [{ id: 7041, type: "MACHINE_STARTED", created_at: "2026-04-28T10:15:00.000Z" }],
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
await primeSession(page, {
|
||||
token: "self-serve-active-server-wash-token",
|
||||
permissions: ["user"],
|
||||
});
|
||||
|
||||
await page.goto("/user/wash/start");
|
||||
await expect(page.getByTestId("self-serve-live-elapsed")).toBeVisible({ timeout: 10_000 });
|
||||
await expect(page.getByTestId("self-serve-department-name")).toContainText("Odense");
|
||||
expect(requests.commands).toHaveLength(0);
|
||||
|
||||
const accessCommandRequestPromise = waitForLaneCommandRequest(page, "OPEN_PROPERTY_ACCESS_GATE");
|
||||
await page.getByTestId("self-serve-nav-open-property-access-gate").click();
|
||||
const accessCommandRequest = await accessCommandRequestPromise;
|
||||
expect(accessCommandRequest.postDataJSON?.()).toMatchObject({
|
||||
lane_id: 9,
|
||||
command: "OPEN_PROPERTY_ACCESS_GATE",
|
||||
});
|
||||
});
|
||||
|
||||
test("superuser can force a department and clear the override", async ({ page }) => {
|
||||
await mockApi(page, {
|
||||
authenticated: true,
|
||||
|
||||
Reference in New Issue
Block a user