netx/packages/netx-topology-mcp/tests
oliver f301544b99 Optimize topology canvas per the 2026-10-12 plan.
Save path: one atomic POST /views/{id}/commit (edges, ports, styles, node
add/remove, positions) replaces the multi-request save. Edge styles and
manual-edge port edits now go through dirty/undo/save instead of writing
immediately; non-manual edge ports are read-only.

Data safety: UI saves no longer clear MCP node locks or freeze the device
name into the placement label (label_override + omit-means-keep semantics,
also applied to the MCP positions tool). Adding NEs/neighbors with unsaved
edits now saves first instead of silently dropping them. Positions no longer
bypass membership caps, except persisting synthesized child-region icons.

Fixes found in acceptance: nodes added in the same commit kept (40,40)
under autoflush=False; edits on edges deleted in the same save 404'd the
whole save; box-selection drags and arrow-key moves were not marked dirty;
large canvases far from the origin opened blank and locate did nothing
because fitView waits for measurement that onlyRenderVisibleElements never
does (now fitBounds from known geometry).

Also: batch N+1 lookups in graph/positions, deterministic truncation,
outside-peer scan excludes internal edges, split TopologyPage into hooks,
fix flaky UME/LLDP port test, add scripts/topology_clear_frozen_labels.py.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 22:11:22 +08:00
..
test_align_reference.py Ship gated eye polish, fabric levels, and collection UI refresh. 2026-08-12 16:13:05 +08:00
test_bundle_orbit.py Ship gated eye polish, fabric levels, and collection UI refresh. 2026-08-12 16:13:05 +08:00
test_channel_metro.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_clear_edge_hits.py Ship gated eye polish, fabric levels, and collection UI refresh. 2026-08-12 16:13:05 +08:00
test_compact_bbox.py Ship gated eye polish, fabric levels, and collection UI refresh. 2026-08-12 16:13:05 +08:00
test_compose_orbit.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_compose_views.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_core_beam.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_densify_sweep.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_dual_mass.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_dual_units.py Ship gated eye polish, fabric levels, and collection UI refresh. 2026-08-12 16:13:05 +08:00
test_edge_axis.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_fold_chain.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_force_densify.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_hierarchy.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_hotspots.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_layout_jobs.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_layout_ops.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_layout_sight.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_layout_stats.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_layout_structure.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_layout_tool.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_mass_merge.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_mcp_topology.py Optimize topology canvas per the 2026-10-12 plan. 2026-10-12 22:11:22 +08:00
test_move_nodes.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_orbit_sweep.py Ship gated eye polish, fabric levels, and collection UI refresh. 2026-08-12 16:13:05 +08:00
test_ortho_metro.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_partition.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_pin_beam_soft_petals.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_press_crossings.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_pull_far_chains.py Ship gated eye polish, fabric levels, and collection UI refresh. 2026-08-12 16:13:05 +08:00
test_rigid_orbit.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_rigid_units.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00
test_sink_dual_units.py Ship gated eye polish, fabric levels, and collection UI refresh. 2026-08-12 16:13:05 +08:00
test_suggest_sink_hubs.py Ship gated eye polish, fabric levels, and collection UI refresh. 2026-08-12 16:13:05 +08:00
test_topology_quality.py Ship gated eye polish, fabric levels, and collection UI refresh. 2026-08-12 16:13:05 +08:00
test_untangle.py Converge netx-topology MCP to dual-unit drain + orbit/polish mainline. 2026-08-09 23:18:53 +08:00