fix(approval): replay immutable action responses
This commit is contained in:
@@ -736,6 +736,17 @@ def test_approve_claim_endpoint_routes_direct_manager_claim_to_finance_review()
|
||||
assert approval_events[0]["operator"] == "李经理"
|
||||
assert "manager-approve-api@example.com" not in approval_events[0]["message"]
|
||||
|
||||
with session_factory() as db:
|
||||
moved_forward = db.get(ExpenseClaim, "claim-approve-1")
|
||||
assert moved_forward is not None
|
||||
moved_forward.status = "pending_payment"
|
||||
moved_forward.approval_stage = "待付款"
|
||||
moved_forward.risk_flags_json = [
|
||||
*list(moved_forward.risk_flags_json or []),
|
||||
{"source": "future_state", "message": "首次响应之后的状态"},
|
||||
]
|
||||
db.commit()
|
||||
|
||||
replay_response = client.post(
|
||||
"/api/v1/reimbursements/claims/claim-approve-1/approve",
|
||||
json={
|
||||
@@ -747,7 +758,11 @@ def test_approve_claim_endpoint_routes_direct_manager_claim_to_finance_review()
|
||||
headers=action_headers,
|
||||
)
|
||||
assert replay_response.status_code == 200
|
||||
assert replay_response.json()["approval_stage"] == "财务审批"
|
||||
assert replay_response.json() == payload
|
||||
assert all(
|
||||
item.get("source") != "future_state"
|
||||
for item in replay_response.json()["risk_flags_json"]
|
||||
)
|
||||
|
||||
changed_payload_response = client.post(
|
||||
"/api/v1/reimbursements/claims/claim-approve-1/approve",
|
||||
|
||||
Reference in New Issue
Block a user