from services import telegram_templates from services.telegram_templates import _sanitize_telegram_html, price_decision, triaged_alert def test_telegram_html_sanitizer_converts_br_tags_to_newlines(): msg = _sanitize_telegram_html("第一行
第二行
第三行
第四行") assert "第二行", parse_mode=None) == "第一行
第二行" def test_telegram_html_sanitizer_escapes_unsupported_tags_but_keeps_allowed_tags(): msg = _sanitize_telegram_html( 'Ollama timeout ' 'health ' "" ) assert "Ollama" in msg assert "timeout" in msg assert 'health' in msg assert "第二行
第三行", chat_ids=[101, 202], parse_mode="HTML", ) assert result["ok"] is True assert result["sent"] == 2 assert [item["json"]["chat_id"] for item in sent_payloads] == [101, 202] assert all(item["json"]["text"] == "第一行\n第二行\n第三行" for item in sent_payloads) assert all(item["json"]["parse_mode"] == "HTML" for item in sent_payloads) def test_price_decision_accepts_report_url_and_escapes_dynamic_fields(): message, keyboard = price_decision( product_name="精華 ", insight_id=42, report_url="https://mo.wooo.work/report?a=1&b=", ) assert "