generated from coulomb/repo-seed
Dependency graph vizualization
This commit is contained in:
@@ -189,6 +189,9 @@ def test_openapi_contract_snapshot_for_stable_agent_paths():
|
||||
"/repos/{repository_id}/ability-map": {
|
||||
"get": {"tags": ["registry"], "success_schema": "RepositoryAbilityMapResponse"}
|
||||
},
|
||||
"/repos/{repository_id}/dependency-graph": {
|
||||
"get": {"tags": ["registry"], "success_schema": "object"}
|
||||
},
|
||||
"/repos/{repository_id}/analysis-runs": {
|
||||
"get": {"tags": ["analysis"], "success_schema": "list[AnalysisRunResponse]"},
|
||||
"post": {"tags": ["analysis"], "success_schema": "ScanSummaryResponse"},
|
||||
@@ -1365,6 +1368,10 @@ def test_ui_register_analyze_and_approve_loop(tmp_path):
|
||||
f'<a class="button secondary" href="/ui/repos/{repository_id}/scope">SCOPE</a>'
|
||||
in detail_response.text
|
||||
)
|
||||
assert (
|
||||
f'<a class="button secondary" href="/ui/repos/{repository_id}/dependency-graph">Dependency Graph</a>'
|
||||
in detail_response.text
|
||||
)
|
||||
|
||||
repo_scope_response = client.get(f"/ui/repos/{repository_id}/scope")
|
||||
assert repo_scope_response.status_code == 200
|
||||
@@ -1491,6 +1498,24 @@ def test_ui_register_analyze_and_approve_loop(tmp_path):
|
||||
assert "Elements" in approved_detail.text
|
||||
assert "q=Report+Service+Status" in approved_detail.text
|
||||
|
||||
graph_response = client.get(f"/repos/{repository_id}/dependency-graph")
|
||||
assert graph_response.status_code == 200
|
||||
graph_payload = graph_response.json()
|
||||
assert graph_payload["mode"] == "full"
|
||||
assert graph_payload["metrics"]["node_count"] >= 4
|
||||
assert graph_payload["metrics"]["edge_count"] >= 3
|
||||
assert any(
|
||||
element["data"].get("kind") == "scope"
|
||||
for element in graph_payload["elements"]
|
||||
if "source" not in element["data"]
|
||||
)
|
||||
|
||||
graph_page = client.get(f"/ui/repos/{repository_id}/dependency-graph")
|
||||
assert graph_page.status_code == 200
|
||||
assert "Dependency Graph" in graph_page.text
|
||||
assert "cytoscape.min.js" in graph_page.text
|
||||
assert 'data-graph-mode="impact"' in graph_page.text
|
||||
|
||||
scope_listing = client.get(
|
||||
f"/ui/repos/{repository_id}/elements",
|
||||
params={"scope": "all", "type": "scopes", "entry_filter": "approved"},
|
||||
|
||||
Reference in New Issue
Block a user