import { getClaimCaptureProgress, isClaimCaptureStepComplete, } from "./claim-capture-phase"; describe("claim-capture-phase", () => { const baseClaim = { vehicle: { carType: "sedan" }, damage: { selectedParts: [{ name: "hood", side: "front", label_fa: "کاپوت" }], }, media: { carAngles: {}, damagedParts: [] }, requiredDocuments: {}, }; it("starts in parts phase", () => { const p = getClaimCaptureProgress(baseClaim); expect(p.sequencePhase).toBe("parts"); expect(p.partsComplete).toBe(false); }); it("moves to angles after all parts", () => { const claim = { ...baseClaim, media: { carAngles: {}, damagedParts: [ { name: "hood", side: "front", label_fa: "کاپوت", path: "/x.jpg", }, ], }, }; const p = getClaimCaptureProgress(claim); expect(p.sequencePhase).toBe("angles"); expect(p.partsComplete).toBe(true); expect(p.anglesComplete).toBe(false); }); it("does not complete capture step with only capture-phase docs uploaded", () => { const claim = { ...baseClaim, media: { carAngles: {}, damagedParts: [ { name: "hood", side: "front", label_fa: "کاپوت", path: "/x.jpg", }, ], }, requiredDocuments: { damaged_chassis_number: { uploaded: true }, damaged_engine_photo: { uploaded: true }, damaged_metal_plate: { uploaded: true }, }, }; expect(isClaimCaptureStepComplete(claim)).toBe(false); expect(getClaimCaptureProgress(claim).sequencePhase).toBe("angles"); }); it("is complete only when parts, angles, and capture-phase docs are done", () => { const claim = { ...baseClaim, media: { carAngles: { front: { path: "/f.jpg" }, back: { path: "/b.jpg" }, left: { path: "/l.jpg" }, right: { path: "/r.jpg" }, }, damagedParts: [ { name: "hood", side: "front", label_fa: "کاپوت", path: "/x.jpg", }, ], }, requiredDocuments: { damaged_chassis_number: { uploaded: true }, damaged_engine_photo: { uploaded: true }, damaged_metal_plate: { uploaded: true }, }, }; expect(isClaimCaptureStepComplete(claim)).toBe(true); expect(getClaimCaptureProgress(claim).sequencePhase).toBe("complete"); }); });