import json from typer.testing import CliRunner from tht.cli import app def test_session_show_json_includes_ledger(tmp_path): sid = "2026-01-01-000000-test" sdir = tmp_path / "sessions" / sid sdir.mkdir(parents=True) (sdir / "session_manifest.yaml").write_text( f"id: {sid}\nquestion: q\ndatabase: d\nschema: s\n" "created_at: 2026-01-01T00:00:00+00:00\nstatus: open\n" ) (sdir / "review_decisions.jsonl").write_text( '{"seq": 1, "ts": "2026-01-01T00:01:00+00:00", "type": "concept_clarified", ' '"subject": "ablazione", "detail": "solo transcatetere", ' '"rationale": "scelta reviewer", "phase": 1}\n' ) cfg = tmp_path / "workspace.yaml" cfg.write_text( "database: {database: d, schema: s, user: u, password: p, transport: direct}\n" f"paths: {{artifacts: {tmp_path/'artifacts'}, indexes: {tmp_path/'i'}, " f"sessions: {tmp_path/'sessions'}}}\n" ) res = CliRunner().invoke(app, ["session", "show", sid, "--json", "-c", str(cfg)]) assert res.exit_code == 0, res.output data = json.loads(res.output) assert len(data["decisions"]) == 1 d = data["decisions"][0] assert d["type"] == "concept_clarified" assert d["subject"] == "ablazione" assert d["detail"] == "solo transcatetere"