from src.services.notification_matrix import resolve_chat_ids def test_only_shared_incident_types_resolve_to_sre_group() -> None: for notification_type in [ "TYPE-2", "TYPE-3", "TYPE-4", "TYPE-4D", "TYPE-5S", "TYPE-7E", "TYPE-8M", ]: assert resolve_chat_ids( notification_type, dm_chat_id="operator-dm-id", group_chat_id="sre-room-id", tg_group_cutover=False, ) == ["sre-room-id"] def test_info_business_and_unknown_types_are_fail_closed() -> None: for notification_type in ["TYPE-1", "TYPE-6B", "UNKNOWN"]: assert ( resolve_chat_ids( notification_type, dm_chat_id="operator-dm-id", group_chat_id="sre-room-id", tg_group_cutover=False, ) == [] ) def test_explicit_empty_registry_does_not_fall_back_to_default() -> None: assert ( resolve_chat_ids( "TYPE-5S", dm_chat_id="operator-dm-id", group_chat_id="sre-room-id", registry={}, ) == [] ) def test_dm_is_not_used_when_group_missing() -> None: assert ( resolve_chat_ids( "TYPE-3", dm_chat_id="operator-dm-id", group_chat_id="", tg_group_cutover=True, ) == [] )