# backend/tests/test_mail_ai.py — phase-16+: 메일 시드 제거 → 직접 생성
from app.models import Email
from app.services.mail_ai import analyze_email
from tests._factories import make_email
from tests._fake_llm import FakeLLMProvider


def test_existing_ai_is_reused(client, session):
    s, _ = session
    e = make_email(s, id="m1", subject="온보딩 시안 v3", ai_json={"summary": "온보딩 시안 v3 요약"})
    out = analyze_email(s, e, FakeLLMProvider())
    assert out["summary"].startswith("온보딩 시안 v3")  # 기존 ai_json 재사용(LLM 미호출)


def test_new_email_analyzed_by_llm(client, session):
    s, _ = session
    e = Email(
        id="mX",
        account="work",
        from_key="hyunwoo",
        subject="[중요] 14시 미팅 부탁",
        body=["14시에 봬요"],
        ai_json={},
    )
    s.add(e)
    s.commit()
    out = analyze_email(s, e, FakeLLMProvider())  # 실 LLM 대역(결정적)
    assert out["priority"] == "높음"  # [중요]
    assert len(out["events"]) == 1  # 14시 → event 후보
