Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from server.schema import canonical_reason_codes, normalize_reason_code | |
| def test_normalize_reason_code_accepts_space_separated_variant(): | |
| assert normalize_reason_code("sender domain spoof") == "sender_domain_spoof" | |
| assert normalize_reason_code("approval threshold evasion") == "approval_threshold_evasion" | |
| def test_normalize_reason_code_maps_common_aliases(): | |
| assert normalize_reason_code("shared remittance account") == "shared_bank_account" | |
| assert normalize_reason_code("invoice splitting") == "approval_threshold_evasion" | |
| def test_canonical_reason_codes_dedupes_mixed_variants(): | |
| assert canonical_reason_codes( | |
| [ | |
| "sender_domain_spoof", | |
| "sender domain spoof", | |
| "invoice splitting", | |
| "approval_threshold_evasion", | |
| "shared remittance account", | |
| ] | |
| ) == [ | |
| "sender_domain_spoof", | |
| "approval_threshold_evasion", | |
| "shared_bank_account", | |
| ] | |