import { describe, expect, it } from "vitest"; import { evaluateFlockOptionCompat, flockOptionHasBlock, isFlockReeferOnlyWithoutTemp, isFlockSprinterOnly, isFlockTempWithoutReefer, } from "@/lib/flock/option-compat"; describe("Flock 车型×温控", () => { it("仅冷藏无温控 → block", () => { expect( isFlockReeferOnlyWithoutTemp({ vehicleTypes: ["refrigerated"], additionalServices: [], }), ).toBe(true); const issues = evaluateFlockOptionCompat({ pickupLocationType: "business_with_dock", deliveryLocationType: "business_with_dock", packagingTypes: ["pallets_48x40"], vehicleTypes: ["refrigerated"], additionalServices: [], }); expect(flockOptionHasBlock(issues)).toBe(true); }); it("温控无冷藏车 → block", () => { expect( isFlockTempWithoutReefer({ vehicleTypes: ["box_truck"], additionalServices: ["temperature_control"], }), ).toBe(true); }); it("冷藏+温控 → 通过", () => { expect( isFlockReeferOnlyWithoutTemp({ vehicleTypes: ["refrigerated"], additionalServices: ["temperature_control"], }), ).toBe(false); }); it("仅 sprinter → warn", () => { expect(isFlockSprinterOnly(["sprinter"])).toBe(true); const issues = evaluateFlockOptionCompat({ pickupLocationType: "business_with_dock", deliveryLocationType: "business_with_dock", packagingTypes: ["boxes"], vehicleTypes: ["sprinter"], additionalServices: [], }); expect(issues.some((i) => i.code === "flock_sprinter_only")).toBe(true); }); it("施工工地 / units 包装 → warn", () => { const issues = evaluateFlockOptionCompat({ pickupLocationType: "business_with_dock", deliveryLocationType: "limited_construction", packagingTypes: ["units"], vehicleTypes: ["box_truck", "dry_van", "refrigerated"], additionalServices: [], }); expect(flockOptionHasBlock(issues)).toBe(false); expect(issues.some((i) => i.code.includes("construction"))).toBe(true); expect(issues.some((i) => i.code.includes("units"))).toBe(true); }); });