34 行
1.2 KiB
JavaScript
34 行
1.2 KiB
JavaScript
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();
|
|
});
|
|
});
|