import sys, os
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))

from app.notifiers.telegram_lotto import _format_briefing, _format_prize_alert


def test_briefing_with_retrospective():
    payload = {
        "draw_no": 1154,
        "confidence": 72,
        "narrative": {
            "headline": "안정 +1, 콜드 누적 보강",
            "summary_3lines": ["a", "b", "c"],
            "retrospective": "너 2.0 / 나 1.8 — 저번호 편향",
        },
        "picks": {
            "core": [
                {"risk_tag": "안정"}, {"risk_tag": "안정"}, {"risk_tag": "안정"},
                {"risk_tag": "균형"}, {"risk_tag": "공격"},
            ],
            "bonus": [], "extended": [], "pool": [],
        },
    }
    text = _format_briefing(payload)
    assert "1154회" in text
    assert "신뢰도 72" in text
    assert "안정 3" in text
    assert "회고: 너 2.0" in text


def test_briefing_without_retrospective():
    payload = {
        "draw_no": 1, "confidence": 50,
        "narrative": {"headline": "h", "summary_3lines": ["a","b","c"], "retrospective": ""},
        "picks": {"core": [{"risk_tag":"안정"}]*5, "bonus":[],"extended":[],"pool":[]},
    }
    text = _format_briefing(payload)
    assert "회고" not in text


def test_prize_alert():
    text = _format_prize_alert({"draw_no": 1154, "match_count": 5, "numbers": [3,11,17,25,33,8]})
    assert "5개 일치" in text
    assert "3, 11, 17, 25, 33, 8" in text
