Add gated changeset application and graph controls
This commit is contained in:
parent
3c15e26283
commit
78335c8973
20 changed files with 1813 additions and 453 deletions
|
|
@ -70,6 +70,7 @@ class VisualizationTests(unittest.TestCase):
|
|||
first = snapshot.node("guide.workflow", depth=2, limit=2)
|
||||
second = snapshot.node("guide.workflow", depth=2, limit=2)
|
||||
filtered = snapshot.filter_nodes(category="tag", value="canonical", limit=2)
|
||||
source = snapshot.source("guide.workflow")
|
||||
|
||||
self.assertEqual(3, overview["node_count"])
|
||||
self.assertEqual(2, overview["edge_count"])
|
||||
|
|
@ -87,6 +88,8 @@ class VisualizationTests(unittest.TestCase):
|
|||
self.assertFalse(filtered["truncated"])
|
||||
self.assertEqual("guide.foundation", filtered["results"][0]["node_id"])
|
||||
self.assertLessEqual(len(first["edges"]), 2)
|
||||
self.assertEqual("docs/content/workflow.md", source["source_path"])
|
||||
self.assertIn("Editors change canonical nodes", source["content"])
|
||||
self.assertIn(
|
||||
"guide.workflow",
|
||||
{node["node_id"] for node in first["nodes"]},
|
||||
|
|
@ -112,6 +115,14 @@ class VisualizationTests(unittest.TestCase):
|
|||
self.assertEqual("", result.stderr)
|
||||
self.assertEqual(0, result.returncode)
|
||||
|
||||
def test_browser_contains_hiding_source_navigation_and_scrollable_inspector(self) -> None:
|
||||
self.assertIn('id="restore-hidden"', _GRAPH_BROWSER_HTML)
|
||||
self.assertIn('id="open-node-source"', _GRAPH_BROWSER_HTML)
|
||||
self.assertIn('id="hide-node"', _GRAPH_BROWSER_HTML)
|
||||
self.assertIn('id="source-dialog"', _GRAPH_BROWSER_HTML)
|
||||
self.assertIn("state.hiddenNodes.add(nodeId)", _GRAPH_BROWSER_HTML)
|
||||
self.assertIn("grid-template-rows: auto minmax(0, 1fr) auto", _GRAPH_BROWSER_HTML)
|
||||
|
||||
@unittest.skipUnless(shutil.which("node"), "Node.js is required for topology validation")
|
||||
def test_embedded_topology_roles_hops_and_shading_are_deterministic(self) -> None:
|
||||
script = _GRAPH_BROWSER_HTML.split("<script>", 1)[1].split("</script>", 1)[0]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue