| 1 | import sys |
| 2 | from pathlib import Path |
| 3 | |
| 4 | |
| 5 | PROJECT_ROOT = Path(__file__).resolve().parents[1] |
| 6 | if str(PROJECT_ROOT) not in sys.path: |
| 7 | sys.path.insert(0, str(PROJECT_ROOT)) |
| 8 | |
| 9 | from plugins._whatsapp_integration.helpers.number_utils import ( |
| 10 | normalize_allowed_numbers, |
| 11 | normalize_number, |
| 12 | ) |
| 13 | |
| 14 | |
| 15 | def test_normalize_number_handles_jids_and_phone_formatting(): |
| 16 | assert normalize_number("+1 (415) 555-1234") == "14155551234" |
| 17 | assert normalize_number("00420 777 123 456") == "420777123456" |
| 18 | assert normalize_number("14155551234@s.whatsapp.net") == "14155551234" |
| 19 | assert normalize_number("14155551234:17@s.whatsapp.net") == "14155551234" |
| 20 | |
| 21 | |
| 22 | def test_normalize_allowed_numbers_accepts_lists_and_csv_strings(): |
| 23 | assert normalize_allowed_numbers([ |
| 24 | "+1 (415) 555-1234", |
| 25 | "00420 777 123 456", |
| 26 | "", |
| 27 | ]) == {"14155551234", "420777123456"} |
| 28 | |
| 29 | assert normalize_allowed_numbers( |
| 30 | "+1 (415) 555-1234, 00420 777 123 456" |
| 31 | ) == {"14155551234", "420777123456"} |
| 32 | |
| 33 | |
| 34 | def test_normalize_allowed_numbers_ignores_unsupported_values(): |
| 35 | assert normalize_allowed_numbers(None) == set() |
| 36 | assert normalize_allowed_numbers(12345) == set() |