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.
chajia/__tests__/workers/rpa/priority1-form-constraints....

46 lines
1.4 KiB

import { describe, expect, it } from "vitest";
import {
DEFAULT_EXPEDITED_DEMO,
DEFAULT_FTL_FTL_EXPEDITED_DEMO,
PRIORITY1_CANONICAL_PATHS,
} from "@/workers/rpa/priority1/demo-input";
import {
validatePriority1FormConstraints,
} from "@/workers/rpa/priority1/form-constraints";
describe("priority1 form-constraints", () => {
it("24 条 canonical 无硬限制违规", () => {
const errors = PRIORITY1_CANONICAL_PATHS.flatMap((p) =>
validatePriority1FormConstraints(p.input).filter((v) => v.severity === "error"),
);
expect(errors).toEqual([]);
});
it("Expedited Large 超过 10000 lb 报错", () => {
const v = validatePriority1FormConstraints({
...DEFAULT_EXPEDITED_DEMO,
expeditedTrailer: "large_straight",
weightLb: "11000",
});
expect(v.some((x) => x.code === "WEIGHT_MAX")).toBe(true);
});
it("非 Large Straight 不可勾选 Liftgate", () => {
const v = validatePriority1FormConstraints({
...DEFAULT_EXPEDITED_DEMO,
expeditedTrailer: "sprinter_van",
expeditedLiftgate: true,
});
expect(v.some((x) => x.code === "LIFTGATE_TRAILER")).toBe(true);
});
it("FTL 内嵌 Expedited Large 重量上限 10000", () => {
const v = validatePriority1FormConstraints({
...DEFAULT_FTL_FTL_EXPEDITED_DEMO,
ftlExpeditedTrailer: "large_straight",
weightLb: "12000",
});
expect(v.some((x) => x.code === "WEIGHT_MAX")).toBe(true);
});
});