Clear stale MyWash summary after preview

This commit is contained in:
Jeppe Bundgaard
2026-06-04 07:13:00 +02:00
parent d6356d0244
commit aeef75b831
2 changed files with 50 additions and 0 deletions
+4
View File
@@ -498,6 +498,10 @@ export function useSelfServeLogic() {
machineType.value = previewData?.machine_type || machineType.value;
vehicle.value = previewData?.vehicle || null;
session.value = previewData?.session || session.value;
if (!previewData?.session?.id) {
summary.value = null;
events.value = [];
}
if (Object.prototype.hasOwnProperty.call(previewData || {}, "config_version_id")) {
configVersionId.value = previewData?.config_version_id ?? null;
}
+46
View File
@@ -91,6 +91,52 @@ describe("useSelfServeLogic", () => {
});
});
it("clears stale wash summary machine availability when a fresh preview has no session", async () => {
mocks.previewAllowed
.mockResolvedValueOnce({
allowed: true,
machine_available: true,
lane: { id: 7, name: "Lane 7" },
session: { id: 91, status: "READY_FOR_MACHINE_START" },
questions: [{ id: 1, question: "Machine wash?", answer: true, order_priority: 1 }],
tasks: [{ id: 5, task: "Prepare", order_priority: 1, services: ["MACHINE"] }],
conditions: [],
rules: [],
allowed_services: ["MACHINE"],
})
.mockResolvedValueOnce({
allowed: true,
machine_available: true,
lane: { id: 7, name: "Lane 7" },
session: null,
questions: [{ id: 1, question: "Machine wash?", answer: true, order_priority: 1 }],
tasks: [{ id: 5, task: "Prepare", order_priority: 1, services: ["MACHINE"] }],
conditions: [],
rules: [],
allowed_services: ["MACHINE"],
});
mocks.washSummary.mockResolvedValueOnce({
machine_available: false,
session: { id: 91, status: "READY_FOR_MACHINE_START" },
lane: { id: 7, name: "Lane 7" },
questions: [{ id: 1, question: "Machine wash?", answer: true, order_priority: 1 }],
tasks: [{ id: 5, task: "Prepare", order_priority: 1, services: ["MACHINE"] }],
events: [],
allowed_services: [],
});
const logic = useSelfServeLogic();
await logic.fetchSelfServeData(1, 9, 7, "ab12345");
expect(logic.machineAvailable.value).toBe(false);
await logic.fetchSelfServeData(1, 9, 7, "cd12345");
expect(logic.summary.value).toBeNull();
expect(logic.machineAvailable.value).toBe(true);
expect(logic.allowedServices.value).toEqual(["MACHINE"]);
});
it("preserves preview task ids when wash summary omits task ids", async () => {
mocks.previewAllowed.mockResolvedValue({
allowed: true,