收敛报销退回动作与审批布局 [09-04-approval-return-reject-actions]
这个提交包含在:
@@ -32,6 +32,19 @@ describe("Workflow Route Permissions", () => {
|
||||
expect(actions).toEqual(["approve", "reject", "return"]);
|
||||
});
|
||||
|
||||
it("exposes return instead of reject for reimbursement tasks", () => {
|
||||
const actions = listAllowedActionsForTask(
|
||||
{ employee: { permissionCodes: ["expense.approve"] } },
|
||||
{
|
||||
status: "pending",
|
||||
workflow_instance: { entity_type: "reimbursement" },
|
||||
},
|
||||
true,
|
||||
);
|
||||
|
||||
expect(actions).toEqual(["approve", "return"]);
|
||||
});
|
||||
|
||||
it("does not allow expense approvers to act on leave tasks without leave.approve", () => {
|
||||
const actions = listAllowedActionsForTask(
|
||||
{ employee: { permissionCodes: ["expense.approve"] } },
|
||||
@@ -117,11 +130,20 @@ describe("Workflow Route Permissions", () => {
|
||||
},
|
||||
true,
|
||||
);
|
||||
const attendanceActions = listAllowedActionsForTask(
|
||||
{ employee: { permissionCodes: ["attendance.approve", "expense.transfer"] } },
|
||||
{
|
||||
status: "pending",
|
||||
workflow_instance: { entity_type: "attendance_correction" },
|
||||
},
|
||||
true,
|
||||
);
|
||||
|
||||
expect(reimbursementActions).toContain("transfer");
|
||||
expect(leaveActions).toContain("transfer");
|
||||
expect(purchaseActions).toContain("transfer");
|
||||
expect(travelActions).toContain("transfer");
|
||||
expect(reimbursementActions).toEqual(["approve", "return", "transfer"]);
|
||||
expect(leaveActions).toEqual(["approve", "reject", "return", "transfer"]);
|
||||
expect(purchaseActions).toEqual(["approve", "reject", "return", "transfer"]);
|
||||
expect(travelActions).toEqual(["approve", "reject", "return", "transfer"]);
|
||||
expect(attendanceActions).toEqual(["approve", "reject", "transfer"]);
|
||||
});
|
||||
|
||||
it("does not allow transfer without matching approve permission", () => {
|
||||
|
||||
在新工单中引用
屏蔽一个用户