diff --git a/tests/unit/services/test_nextcloud_mail_models.py b/tests/unit/services/test_nextcloud_mail_models.py new file mode 100644 index 0000000..0e90eac --- /dev/null +++ b/tests/unit/services/test_nextcloud_mail_models.py @@ -0,0 +1,27 @@ +from ariadne.services import nextcloud_mail_models as models + + +def test_extract_attr_variants() -> None: + assert models._extract_attr("not-attrs", "mailu_email") == "" + assert models._extract_attr({"mailu_email": ["", " "]}, "mailu_email") == "" + assert models._extract_attr({"mailu_email": " alice@bstein.dev "}, "mailu_email") == "alice@bstein.dev" + + +def test_resolve_mailu_email_uses_matching_keycloak_email() -> None: + user = {"email": " Alice@BSTEIN.DEV ", "attributes": {}} + + assert models._resolve_mailu_email("alice", user) == "Alice@BSTEIN.DEV" + + +def test_parse_mail_export_skips_blank_lines() -> None: + output = """ + + Account 7: + - E-mail: alice@bstein.dev + """ + + assert models._parse_mail_export(output) == [("7", "alice@bstein.dev")] + + +def test_display_name_joins_first_and_last() -> None: + assert models.display_name({"firstName": " Alice ", "lastName": " Atlas "}) == "Alice Atlas"