test: 同步报销审批流与预算分析测试
- 新增预算审批合并、风险标记去重与占位条目校验用例 - 补充预算分析对当前审核人与财务的可见性断言 - 调整单据删除权限测试以匹配 admin 限制
This commit is contained in:
47
server/tests/test_expense_claim_risk_flags.py
Normal file
47
server/tests/test_expense_claim_risk_flags.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from app.services.expense_claim_risk_flags import dedupe_claim_risk_flags
|
||||
|
||||
|
||||
def test_dedupe_claim_risk_flags_keeps_highest_severity_for_same_route_issue() -> None:
|
||||
flags = [
|
||||
{
|
||||
"severity": "high",
|
||||
"label": "多城市行程待说明",
|
||||
"message": "检测到本次差旅涉及深圳多个目的地,但当前报销事由未说明中转原因。",
|
||||
"item_ids": ["route-1", "route-2"],
|
||||
"business_stage": "reimbursement",
|
||||
},
|
||||
{
|
||||
"severity": "medium",
|
||||
"label": "多城市行程缺少说明中风险",
|
||||
"message": "本次报销识别到多城市行程,但事由中未说明中转、多地拜访或改签原因。",
|
||||
"item_ids": ["route-2"],
|
||||
"business_stage": "reimbursement",
|
||||
},
|
||||
]
|
||||
|
||||
deduped = dedupe_claim_risk_flags(flags)
|
||||
|
||||
assert [flag["label"] for flag in deduped] == ["多城市行程待说明"]
|
||||
|
||||
|
||||
def test_dedupe_claim_risk_flags_keeps_distinct_item_risks() -> None:
|
||||
flags = [
|
||||
{
|
||||
"severity": "high",
|
||||
"label": "住宿金额超出报销标准",
|
||||
"message": "第一张住宿票超出住宿标准。",
|
||||
"item_id": "hotel-1",
|
||||
"business_stage": "reimbursement",
|
||||
},
|
||||
{
|
||||
"severity": "medium",
|
||||
"label": "住宿金额超出报销标准",
|
||||
"message": "第二张住宿票超出住宿标准。",
|
||||
"item_id": "hotel-2",
|
||||
"business_stage": "reimbursement",
|
||||
},
|
||||
]
|
||||
|
||||
deduped = dedupe_claim_risk_flags(flags)
|
||||
|
||||
assert [flag["item_id"] for flag in deduped] == ["hotel-1", "hotel-2"]
|
||||
Reference in New Issue
Block a user