import { describe, expect, it } from "vitest"; import { resolveWorkOrderPanelKind } from "@/services/cc/work-order-panel"; describe("resolveWorkOrderPanelKind", () => { it("贴标/拍照/拆柜清单 → 客户留言(两端)", () => { for (const mode of ["admin", "client"] as const) { expect( resolveWorkOrderPanelKind(mode, ["贴标", "拍照"], "拆柜清单 派送要求"), ).toBe("message"); expect( resolveWorkOrderPanelKind( mode, ["贴标"], "主题 拦截-209件 FedEx-29件\nDear 请贴标", ), ).toBe("message"); } }); it("主题渠道「拦截-N件」alone 不触发转渠道", () => { expect( resolveWorkOrderPanelKind("admin", [], "拦截-209件 卡派-10件"), ).toBe("message"); }); it("admin: 显式留仓/转渠道/拆分", () => { expect(resolveWorkOrderPanelKind("admin", ["留仓"], "")).toBe("hold"); expect(resolveWorkOrderPanelKind("admin", [], "请转渠道为留仓")).toBe( "hold", ); expect(resolveWorkOrderPanelKind("admin", ["拆分"], "")).toBe("split"); expect(resolveWorkOrderPanelKind("admin", [], "数量拆分 5 件")).toBe( "split", ); // 拆柜清单 ≠ 拆分 expect(resolveWorkOrderPanelKind("admin", [], "拆柜清单")).toBe("message"); }); it("client: 出库指令", () => { expect(resolveWorkOrderPanelKind("client", [], "请出库指令")).toBe( "outstock", ); expect(resolveWorkOrderPanelKind("client", ["贴标"], "换标")).toBe( "message", ); }); });