import { describe, expect, it } from "vitest"; import { renameLabelFor } from "../../extensions/delivery-customization/src/evaluate.js"; describe("renameLabelFor", () => { it("relabels a pickup order unambiguously", () => { const result = renameLabelFor({ dd_method: "PICKUP", dd_date: "2026-08-25" }); expect(result).toEqual({ rename: true, title: "Pickup — 2026-08-25" }); }); it("relabels a local delivery order distinctly from pickup", () => { const result = renameLabelFor({ dd_method: "LOCAL_DELIVERY", dd_date: "2026-08-25" }); expect(result.rename).toBe(true); if (!result.rename) throw new Error("unreachable"); expect(result.title).toContain("Local delivery"); expect(result.title).not.toContain("Pickup"); }); it("relabels shipping too, for consistency across all three methods", () => { const result = renameLabelFor({ dd_method: "SHIPPING", dd_date: "2026-08-25" }); expect(result).toEqual({ rename: true, title: "Shipping — 2026-08-25" }); }); it("does nothing when no method was selected", () => { expect(renameLabelFor({})).toEqual({ rename: false }); }); it("does nothing for an unrecognized method value", () => { expect(renameLabelFor({ dd_method: "TELEPORT", dd_date: "2026-08-25" })).toEqual({ rename: false }); }); it("does nothing when the date is missing even if method is present", () => { expect(renameLabelFor({ dd_method: "PICKUP" })).toEqual({ rename: false }); }); it("appends the resolved rate when a rate label is present", () => { const result = renameLabelFor({ dd_method: "LOCAL_DELIVERY", dd_date: "2026-08-25", dd_rate_label: "$5.00" }); expect(result).toEqual({ rename: true, title: "Local delivery — 2026-08-25 ($5.00)" }); }); it("omits the rate suffix entirely when no rate label is present", () => { const result = renameLabelFor({ dd_method: "LOCAL_DELIVERY", dd_date: "2026-08-25" }); expect(result).toEqual({ rename: true, title: "Local delivery — 2026-08-25" }); }); });