Spaces:
Sleeping
Sleeping
File size: 2,662 Bytes
1432cf4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | from __future__ import annotations
import importlib
import sys
from pathlib import Path
from fastapi.testclient import TestClient
from db.seed import seed_project
def test_reports_generate_endpoint(tmp_path: Path, monkeypatch) -> None:
monkeypatch.setenv("GRAPHREVIEW_JUDGE_ENABLED", "false")
source_root = Path("sample_project").resolve()
db_path = tmp_path / "phase5_api.db"
seed_project(source_root, db_path=str(db_path), force=True)
monkeypatch.setenv("GRAPHREVIEW_SOURCE_ROOT", str(source_root))
monkeypatch.setenv("GRAPHREVIEW_DB_PATH", str(db_path))
if "server.app" in sys.modules:
del sys.modules["server.app"]
server_app = importlib.import_module("server.app")
app = server_app.app
client = TestClient(app)
response = client.post(
"/reports/generate",
json={"module_override": ["checkout"], "hops": 1, "output_dir": str(tmp_path / "api_outputs")},
)
assert response.status_code == 200
payload = response.json()["artifacts"]
assert Path(payload["markdown_path"]).exists()
assert Path(payload["json_path"]).exists()
assert Path(payload["html_path"]).exists()
assert 0.0 <= payload["confidence_score"] <= 1.0
def test_ui_routes_expose_generated_results(tmp_path: Path, monkeypatch) -> None:
monkeypatch.setenv("GRAPHREVIEW_JUDGE_ENABLED", "false")
source_root = Path("sample_project").resolve()
db_path = tmp_path / "phase5_ui.db"
output_dir = tmp_path / "ui_outputs"
seed_project(source_root, db_path=str(db_path), force=True)
monkeypatch.setenv("GRAPHREVIEW_SOURCE_ROOT", str(source_root))
monkeypatch.setenv("GRAPHREVIEW_DB_PATH", str(db_path))
monkeypatch.setenv("GRAPHREVIEW_OUTPUT_DIR", str(output_dir))
if "server.app" in sys.modules:
del sys.modules["server.app"]
server_app = importlib.import_module("server.app")
app = server_app.app
client = TestClient(app)
generated = client.post(
"/reports/generate",
json={"module_override": ["checkout"], "hops": 1, "output_dir": str(output_dir), "report_prefix": "ui_case"},
)
assert generated.status_code == 200
home = client.get("/")
assert home.status_code == 200
assert "GraphReview Results Console" in home.text
listed = client.get("/ui/results")
assert listed.status_code == 200
results = listed.json()
assert len(results) >= 1
detail = client.get("/ui/result", params={"report_path": results[0]["report_path"]})
assert detail.status_code == 200
payload = detail.json()
assert "connectivity" in payload
assert payload["connectivity"]["node_count"] >= 1
|