feat(P20T1-1,P20T1-2,P20T1-3): 差旅模型、申请/订单接口与工作流分支

这个提交包含在:
2026-03-10 19:58:46 +08:00
父节点 427ae2db53
当前提交 7b78945112
共修改 19 个文件,包含 2266 行新增和 59 行删除
@@ -0,0 +1,33 @@
const { NOTIFICATION_TYPES } = require("../../../src/constants/notificationTypes");
const workflowRoutes = require("../../../src/routes/workflow");
describe("workflow travel helpers", () => {
const { getWorkflowEntityMeta, resolveWorkflowOutcomeNotificationType } = workflowRoutes.__testables;
it("builds travel entity meta with deep-link detail path", () => {
const meta = getWorkflowEntityMeta(
"travel_request",
{ request_no: "CL-20260310-0001" },
"11111111-1111-4111-8111-111111111111",
);
expect(meta).toEqual(
expect.objectContaining({
label: "差旅申请",
reference: "CL-20260310-0001",
targetType: "travel_request",
detailPath: "/travel-requests?id=11111111-1111-4111-8111-111111111111",
}),
);
});
it("resolves approved and rejected notification types for travel workflows", () => {
expect(resolveWorkflowOutcomeNotificationType("travel_request", "approved")).toBe(
NOTIFICATION_TYPES.travelRequestApproved,
);
expect(resolveWorkflowOutcomeNotificationType("travel_request", "rejected")).toBe(
NOTIFICATION_TYPES.travelRequestRejected,
);
expect(resolveWorkflowOutcomeNotificationType("travel_request", "returned")).toBeNull();
});
});