generated from coulomb/repo-seed
feat: show zone resolver diagnostics
This commit is contained in:
@@ -91,6 +91,9 @@ def test_resolver_assigns_seed_nodes_and_boundary_edges() -> None:
|
||||
assert resolution.boundary_edges[0].edge_id == "edge.prod-test"
|
||||
assert resolution.boundary_edges[0].source_zone_id == "prod"
|
||||
assert resolution.boundary_edges[0].target_zone_id == "test"
|
||||
assert "ZONE_EDGE_CROSSES_ZONE_BOUNDARY" in {
|
||||
diagnostic.code for diagnostic in resolution.diagnostics
|
||||
}
|
||||
|
||||
|
||||
def test_resolver_attracts_nodes_by_edge_type_direction_and_depth() -> None:
|
||||
@@ -128,6 +131,9 @@ def test_resolver_attracts_nodes_by_edge_type_direction_and_depth() -> None:
|
||||
assert "far" not in resolution.node_assignments
|
||||
assert resolution.zone_by_id("prod").internal_edge_ids == ("edge.seed-near",)
|
||||
assert resolution.zone_by_id("prod").boundary_edge_ids == ("edge.near-far",)
|
||||
assert "ZONE_ATTRACTION_DEPTH_LIMIT_REACHED" in {
|
||||
diagnostic.code for diagnostic in resolution.diagnostics
|
||||
}
|
||||
|
||||
|
||||
def test_resolver_keeps_seed_membership_over_attraction() -> None:
|
||||
@@ -229,3 +235,19 @@ def test_resolver_serializes_resolution() -> None:
|
||||
assert serialized["zones"][0]["id"] == "prod"
|
||||
assert serialized["node_assignments"]["svc"]["zone_id"] == "prod"
|
||||
assert serialized["node_assignments"]["svc"]["reason"] == "seed"
|
||||
|
||||
|
||||
def test_resolver_reports_empty_zone_seed_set() -> None:
|
||||
resolution = resolve_zones(
|
||||
nodes=[_node("svc", deploymentEnvironment="dev")],
|
||||
edges=[],
|
||||
zone_definitions=[
|
||||
{
|
||||
"id": "prod",
|
||||
"membership": {"field": "deploymentEnvironment", "op": "equals", "value": "prod"},
|
||||
}
|
||||
],
|
||||
)
|
||||
|
||||
assert resolution.zone_by_id("prod").node_ids == ()
|
||||
assert "ZONE_EMPTY_SEED_SET" in {diagnostic.code for diagnostic in resolution.diagnostics}
|
||||
|
||||
Reference in New Issue
Block a user