diff --git a/tests/test_gmail_client.py b/tests/test_gmail_client.py new file mode 100644 index 0000000..3f48150 --- /dev/null +++ b/tests/test_gmail_client.py @@ -0,0 +1,55 @@ +import base64 + +from zemail.gmail_client import _decode_body + + +def _encoded(text: str) -> dict: + return {"body": {"data": base64.urlsafe_b64encode(text.encode()).decode()}} + + +def test_decode_body_uses_html_when_plain_text_is_absent(): + payload = { + "mimeType": "text/html", + **_encoded( + """ + +
+ +Quarterly planning & budget notes
+ +HTML-only fallback
")}, + {"mimeType": "text/plain", **_encoded("Plain text body")}, + ], + } + + assert _decode_body(payload) == "Plain text body" + + +def test_decode_body_finds_nested_html_fallback(): + payload = { + "mimeType": "multipart/mixed", + "parts": [ + { + "mimeType": "multipart/alternative", + "parts": [ + {"mimeType": "text/html", **_encoded("