"""Unit tests for render_digest_email.""" from __future__ import annotations from app.services.email_service import render_digest_email def test_daily_subject_and_bodies(): subj, text, html = render_digest_email( kind="daily", date_str="2026-05-25", content_html="
Markets did stuff today.
", unsubscribe_url="https://read.markets/email/unsubscribe?token=abc", settings_url="https://read.markets/settings", ) assert "Daily" in subj assert "2026-05-25" in subj assert "Markets did stuff today" in html assert "abc" in html # unsubscribe link landed assert "/settings" in html # Plain-text fallback strips HTML. assert "" not in text assert "Markets did stuff today" in text def test_weekly_subject_says_recap(): subj, _, _ = render_digest_email( kind="weekly", date_str="2026-05-25", content_html="
x
", unsubscribe_url="https://x/u", settings_url="https://x/s", ) assert "Weekly" in subj assert "recap" in subj.lower() def test_invalid_kind_raises(): import pytest with pytest.raises(ValueError): render_digest_email( kind="bogus", date_str="2026-05-25", content_html="x
", unsubscribe_url="u", settings_url="s", )