R36-4 放开跨域转审并同步回归

这个提交包含在:
2026-03-25 15:33:46 +08:00
父节点 d0b9d9eaca
当前提交 87b52f0509
共修改 6 个文件,包含 327 行新增和 35 行删除
@@ -55,7 +55,7 @@ describe("Workflow Route Permissions", () => {
expect(actions).toEqual(["approve", "reject", "return"]);
});
it("keeps transfer action limited to reimbursement tasks", () => {
it("allows transfer on approval tasks when actor also has expense.transfer", () => {
const reimbursementActions = listAllowedActionsForTask(
{ employee: { permissionCodes: ["expense.approve", "expense.transfer"] } },
{
@@ -72,8 +72,39 @@ describe("Workflow Route Permissions", () => {
},
true,
);
const purchaseActions = listAllowedActionsForTask(
{ employee: { permissionCodes: ["procurement.approve", "expense.transfer"] } },
{
status: "pending",
workflow_instance: { entity_type: "purchase_request" },
},
true,
);
const travelActions = listAllowedActionsForTask(
{ employee: { permissionCodes: ["travel.approve", "expense.transfer"] } },
{
status: "pending",
workflow_instance: { entity_type: "travel_request" },
},
true,
);
expect(reimbursementActions).toContain("transfer");
expect(leaveActions).not.toContain("transfer");
expect(leaveActions).toContain("transfer");
expect(purchaseActions).toContain("transfer");
expect(travelActions).toContain("transfer");
});
it("does not allow transfer without matching approve permission", () => {
const actions = listAllowedActionsForTask(
{ employee: { permissionCodes: ["expense.transfer"] } },
{
status: "pending",
workflow_instance: { entity_type: "leave" },
},
true,
);
expect(actions).toEqual([]);
});
});