Clear stale MyWash summary after preview
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user