feat(server): 重构费用报销服务,优化报销单创建和审批流程逻辑
This commit is contained in:
@@ -154,6 +154,8 @@ def test_claim_item_attachment_upload_preview_and_delete(monkeypatch, tmp_path)
|
||||
upload_payload = upload_response.json()
|
||||
assert upload_payload["attachment"]["file_name"] == "office-note.png"
|
||||
assert upload_payload["attachment"]["analysis"]["label"] == "AI提示符合条件"
|
||||
assert upload_payload["attachment"]["document_info"]["document_type"] == "office_invoice"
|
||||
assert upload_payload["attachment"]["requirement_check"]["matches"] is True
|
||||
assert upload_payload["invoice_id"]
|
||||
|
||||
meta_response = client.get(
|
||||
@@ -164,6 +166,7 @@ def test_claim_item_attachment_upload_preview_and_delete(monkeypatch, tmp_path)
|
||||
meta_payload = meta_response.json()
|
||||
assert meta_payload["media_type"] == "image/png"
|
||||
assert meta_payload["analysis"]["headline"]
|
||||
assert meta_payload["document_info"]["fields"][0]["label"] == "金额"
|
||||
|
||||
content_response = client.get(
|
||||
f"/api/v1/reimbursements/claims/{claim_id}/items/{item_id}/attachment",
|
||||
@@ -228,7 +231,8 @@ def test_claim_item_attachment_upload_flags_purpose_and_amount_mismatch(monkeypa
|
||||
analysis = upload_response.json()["attachment"]["analysis"]
|
||||
assert analysis["severity"] == "high"
|
||||
assert any("金额字段" in point for point in analysis["points"])
|
||||
assert any("用途字段" in point for point in analysis["points"])
|
||||
assert any("附件类型要求" in point for point in analysis["points"])
|
||||
assert upload_response.json()["attachment"]["requirement_check"]["matches"] is False
|
||||
|
||||
|
||||
def test_claim_item_attachment_upload_flags_non_invoice_image_as_high_risk(monkeypatch, tmp_path) -> None:
|
||||
|
||||
Reference in New Issue
Block a user