diff --git a/tests/applications/abri/test_abri_trigger_request.py b/tests/applications/abri/test_abri_trigger_request.py index 928c6973a..134264458 100644 --- a/tests/applications/abri/test_abri_trigger_request.py +++ b/tests/applications/abri/test_abri_trigger_request.py @@ -115,6 +115,41 @@ def test_a_blank_surveyor_identifier_is_treated_as_missing(blank: str) -> None: AbriTriggerRequest.model_validate(message) +def test_a_message_carries_the_client_booking_reference() -> None: + # The Job Number OpenHousing returns on a successful log; the consumer + # reads it to tell "job exists" (amend/abandon) from "never logged" (log). + message = _full_message() + message["client_booking_reference"] = "AD0226519" + + # Act + request = AbriTriggerRequest.model_validate(message) + + # Assert + assert request.client_booking_reference == "AD0226519" + + +@pytest.mark.parametrize("blank", ["", " "]) +def test_a_blank_client_booking_reference_is_treated_as_missing(blank: str) -> None: + # A blank reference means no Job Number: the consumer must treat it as + # "never logged / reference lost", not "job exists". + message = _full_message() + message["client_booking_reference"] = blank + + # Act + request = AbriTriggerRequest.model_validate(message) + + # Assert + assert request.client_booking_reference is None + + +def test_a_message_without_a_client_booking_reference_defaults_to_none() -> None: + # Act + request = AbriTriggerRequest.model_validate(_full_message()) + + # Assert + assert request.client_booking_reference is None + + def test_a_message_carries_the_outcome_for_the_abandonment_reason_mapping() -> None: # Arrange message = _full_message()