import json
from pathlib import Path

import pytest

import app.narrate as narrate

VALID = json.loads((Path(__file__).parent / "fixtures" / "canon_log_valid.json").read_text())


@pytest.mark.live
def test_narrator_returns_real_prose():
    """Hits the real Ollama (OLLAMA_BASE_URL). Proves the wire end-to-end:
    prompt assembly → model → non-empty prose. Not asserted: tag content
    (nondeterministic). Run with: pytest --run-live
    """
    text = narrate.run(VALID)
    assert isinstance(text, str)
    assert len(text.strip()) > 40  # real prose, not a blip
