You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
3.7 KiB
146 lines
3.7 KiB
import { describe, expect, it } from "vitest";
|
|
import {
|
|
evaluateAddressesLockedForSubmit,
|
|
evaluateCargoCommitted,
|
|
type CargoCommitProbe,
|
|
} from "@/workers/rpa/cargo-lock";
|
|
|
|
describe("cargo commit barrier", () => {
|
|
const committed: CargoCommitProbe = {
|
|
hasSummaryChip: true,
|
|
visibleEditableCargoInputs: 0,
|
|
editorOpen: false,
|
|
internalPalletCount: 2,
|
|
internalWeight: 227,
|
|
widgetTextPreview: "2 托盘s",
|
|
};
|
|
|
|
it("summary + 无 editable input + internal pallet → committed", () => {
|
|
expect(evaluateCargoCommitted(committed, 2)).toBe(true);
|
|
});
|
|
|
|
it("内联步输入仍可见但摘要完整 → committed", () => {
|
|
expect(
|
|
evaluateCargoCommitted(
|
|
{
|
|
hasSummaryChip: true,
|
|
visibleEditableCargoInputs: 5,
|
|
editorOpen: true,
|
|
internalPalletCount: 2,
|
|
internalWeight: 226,
|
|
widgetTextPreview:
|
|
"2 托盘s 40W, x 48L, x 48H, x 226Lbs 货运详情",
|
|
},
|
|
2,
|
|
),
|
|
).toBe(true);
|
|
});
|
|
|
|
it("摘要不完整且仍有 editable → 未 committed", () => {
|
|
expect(
|
|
evaluateCargoCommitted(
|
|
{
|
|
hasSummaryChip: false,
|
|
visibleEditableCargoInputs: 2,
|
|
editorOpen: true,
|
|
internalPalletCount: null,
|
|
internalWeight: null,
|
|
widgetTextPreview: "货运详情",
|
|
},
|
|
2,
|
|
),
|
|
).toBe(false);
|
|
});
|
|
|
|
it("摘要含托盘+尺寸但无重量 → 未 committed", () => {
|
|
expect(
|
|
evaluateCargoCommitted(
|
|
{
|
|
hasSummaryChip: true,
|
|
visibleEditableCargoInputs: 0,
|
|
editorOpen: true,
|
|
internalPalletCount: 2,
|
|
internalWeight: null,
|
|
widgetTextPreview: "2 托盘s 40W, x 48L, x 48H, x -Lbs",
|
|
},
|
|
2,
|
|
),
|
|
).toBe(false);
|
|
});
|
|
|
|
it("摘要含 226Lbs 无空格 → committed", () => {
|
|
expect(
|
|
evaluateCargoCommitted(
|
|
{
|
|
hasSummaryChip: true,
|
|
visibleEditableCargoInputs: 0,
|
|
editorOpen: false,
|
|
internalPalletCount: 2,
|
|
internalWeight: 226,
|
|
widgetTextPreview: "2 托盘s 40W, x 48L, x 48H, x 226Lbs",
|
|
},
|
|
2,
|
|
),
|
|
).toBe(true);
|
|
});
|
|
|
|
it("editor 打开且仍有 editable → 未 committed", () => {
|
|
expect(
|
|
evaluateCargoCommitted(
|
|
{ ...committed, editorOpen: true, visibleEditableCargoInputs: 2 },
|
|
2,
|
|
),
|
|
).toBe(false);
|
|
});
|
|
|
|
it("摘要重量与请求单托不符 → 未 committed", () => {
|
|
expect(
|
|
evaluateCargoCommitted(
|
|
{
|
|
hasSummaryChip: true,
|
|
visibleEditableCargoInputs: 0,
|
|
editorOpen: false,
|
|
internalPalletCount: 2,
|
|
internalWeight: 2296,
|
|
widgetTextPreview: "2 托盘s 40W, x 48L, x 48H, x 2296Lbs",
|
|
},
|
|
{
|
|
palletCount: 2,
|
|
weight: {
|
|
displayValue: "500",
|
|
unit: "lb",
|
|
weightLbPerPallet: 500,
|
|
palletCount: 2,
|
|
},
|
|
},
|
|
),
|
|
).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe("address lock barrier", () => {
|
|
it("双州码 → locked", () => {
|
|
expect(
|
|
evaluateAddressesLockedForSubmit(
|
|
"1234 Warehouse St, Los Angeles, CA 90021 → 5678 Distribution Way, Dallas, TX 75234",
|
|
false,
|
|
),
|
|
).toBe(true);
|
|
});
|
|
|
|
it("单州码 → 未 locked", () => {
|
|
expect(
|
|
evaluateAddressesLockedForSubmit("Los Angeles, CA 90021 货运详情", false),
|
|
).toBe(false);
|
|
});
|
|
|
|
it("地址搜索仍可编辑 → 未 locked", () => {
|
|
expect(
|
|
evaluateAddressesLockedForSubmit(
|
|
"1234 Warehouse St, CA 90021 5678 Distribution Way, TX 75234",
|
|
true,
|
|
),
|
|
).toBe(false);
|
|
});
|
|
});
|