# backend/tests/test_ready.py — readiness 의존성 점검 + LLM 폴백 비차단
def test_health_liveness(client):
    assert client.get("/api/health").json()["status"] == "ok"


def test_ready_ok_with_db(client):
    r = client.get("/api/ready")
    assert r.status_code == 200
    body = r.json()
    assert body["ready"] is True
    assert body["checks"]["db"] == "ok"
    assert body["checks"]["migrations"] == "ok"
    assert body["checks"]["worker"] in ("manual", "scheduled")


def test_ready_llm_fallback_does_not_block(client, monkeypatch):
    # Ollama 미가용이어도 ready 유지(heuristic 폴백)
    monkeypatch.setattr(
        "app.routers.ops.check_ollama",
        lambda: {"reachable": False, "model": "x", "host": "y"},
    )
    r = client.get("/api/ready").json()
    assert r["ready"] is True
    assert r["checks"]["llm"].startswith("fallback")


def test_metrics_endpoint_text(client):
    client.get("/api/dashboard")  # 요청 1건 → 메트릭 누적
    r = client.get("/api/metrics")
    assert r.status_code == 200
    assert "ari_http_requests_total" in r.text
