generated from coulomb/repo-seed
Refine runtime entity taxonomy
This commit is contained in:
@@ -42,7 +42,14 @@ def test_graph_explorer_manifest_and_payload_validate() -> None:
|
||||
assert manifest["profile_persistence"] == "local"
|
||||
assert manifest["shareable_state"]["profile_id"] is True
|
||||
assert set(manifest["filter"]["actions"]) >= {"show", "hide", "blur", "highlight", "remove"}
|
||||
assert {layer["id"] for layer in manifest["layers"]} >= {"server", "deployment"}
|
||||
assert {layer["id"] for layer in manifest["layers"]} >= {
|
||||
"server",
|
||||
"runtime_service",
|
||||
"application",
|
||||
"network",
|
||||
"domain",
|
||||
"deployment",
|
||||
}
|
||||
filter_labels = {field["id"]: field["label"] for field in manifest["filter"]["fields"]}
|
||||
assert filter_labels["layer"] == "Node Type"
|
||||
nodes = [element for element in payload["elements"] if "source" not in element["data"]]
|
||||
@@ -50,9 +57,11 @@ def test_graph_explorer_manifest_and_payload_validate() -> None:
|
||||
registered_only = next(
|
||||
element for element in nodes if element["data"]["id"] == "repo:registered-only"
|
||||
)
|
||||
deployment = next(element for element in nodes if element["data"]["kind"] == "Deployment")
|
||||
server = next(element for element in nodes if element["data"]["kind"] == "Server")
|
||||
nodes_by_id = {element["data"]["id"]: element for element in nodes}
|
||||
runs_on = next(edge for edge in edges if edge["data"]["edgeType"] == "runs_on")
|
||||
deployment = nodes_by_id[runs_on["data"]["source"]]
|
||||
server = nodes_by_id[runs_on["data"]["target"]]
|
||||
network_port = next(element for element in nodes if element["data"]["kind"] == "NetworkPort")
|
||||
same_repo_edge = next(edge for edge in edges if edge["data"].get("sameRepo") is True)
|
||||
cross_repo_edge = next(edge for edge in edges if edge["data"].get("layoutAffinity") == "cross-repo")
|
||||
|
||||
@@ -60,6 +69,21 @@ def test_graph_explorer_manifest_and_payload_validate() -> None:
|
||||
assert registered_only["data"]["unresolved"] is True
|
||||
assert deployment["data"]["layer"] == "deployment"
|
||||
assert server["data"]["layer"] == "server"
|
||||
assert ":" not in server["data"]["label"]
|
||||
assert network_port["data"]["layer"] == "network"
|
||||
assert network_port["data"]["label"].endswith("/tcp")
|
||||
assert (
|
||||
len(
|
||||
[
|
||||
edge
|
||||
for edge in edges
|
||||
if edge["data"]["edgeType"] == "runs_on"
|
||||
and edge["data"]["source"] == deployment["data"]["id"]
|
||||
and edge["data"]["target"] == server["data"]["id"]
|
||||
]
|
||||
)
|
||||
== 1
|
||||
)
|
||||
assert runs_on["data"]["layoutIdealLength"] < cross_repo_edge["data"]["layoutIdealLength"]
|
||||
assert runs_on["data"]["layoutElasticity"] > cross_repo_edge["data"]["layoutElasticity"]
|
||||
assert same_repo_edge["data"]["layoutIdealLength"] < cross_repo_edge["data"]["layoutIdealLength"]
|
||||
@@ -123,6 +147,90 @@ def test_graph_explorer_collapses_discovered_repository_nodes() -> None:
|
||||
assert declares_package["data"]["target"] == "discovery:fixture-repo:library:fixture-service"
|
||||
|
||||
|
||||
def test_graph_explorer_presents_legacy_server_nodes_as_runtime_entities() -> None:
|
||||
graph = {
|
||||
"apiVersion": "railiance.fabric/v1alpha1",
|
||||
"kind": "FabricGraphExport",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "fixture.server.gitea.example.test",
|
||||
"kind": "Server",
|
||||
"name": "gitea.example.test",
|
||||
"repo": "fixture-repo",
|
||||
"domain": "testing",
|
||||
"lifecycle": "active",
|
||||
"attributes": {"host": "gitea.example.test", "server_type": "ingress-host"},
|
||||
},
|
||||
{
|
||||
"id": "fixture.server.gitea.default.svc.cluster.local",
|
||||
"kind": "Server",
|
||||
"name": "gitea.default.svc.cluster.local",
|
||||
"repo": "fixture-repo",
|
||||
"domain": "testing",
|
||||
"lifecycle": "active",
|
||||
"attributes": {"host": "gitea.default.svc.cluster.local", "server_type": "kubernetes-service-dns"},
|
||||
},
|
||||
{
|
||||
"id": "fixture.domain.gitea.example.test",
|
||||
"kind": "DomainName",
|
||||
"name": "gitea.example.test",
|
||||
"repo": "fixture-repo",
|
||||
"domain": "testing",
|
||||
"lifecycle": "active",
|
||||
"attributes": {"domain": "gitea.example.test"},
|
||||
},
|
||||
{
|
||||
"id": "fixture.port.gitea.default.svc.cluster.local-3000-tcp",
|
||||
"kind": "NetworkPort",
|
||||
"name": "gitea.default.svc.cluster.local:3000/tcp",
|
||||
"repo": "fixture-repo",
|
||||
"domain": "testing",
|
||||
"lifecycle": "active",
|
||||
"attributes": {"host": "gitea.default.svc.cluster.local", "port": 3000, "protocol": "tcp"},
|
||||
},
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"from": "fixture.domain.gitea.example.test",
|
||||
"to": "fixture.server.gitea.example.test",
|
||||
"type": "resolves_to",
|
||||
},
|
||||
{
|
||||
"from": "fixture.server.gitea.default.svc.cluster.local",
|
||||
"to": "fixture.port.gitea.default.svc.cluster.local-3000-tcp",
|
||||
"type": "opens_port",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
payload = fabric_graph_explorer_payload(graph, [{"slug": "fixture-repo", "name": "Fixture Repo"}], {"fixture-repo"})
|
||||
nodes_by_id = {
|
||||
element["data"]["id"]: element["data"]
|
||||
for element in payload["elements"]
|
||||
if "source" not in element["data"]
|
||||
}
|
||||
|
||||
assert nodes_by_id["fixture.server.gitea.example.test"]["kind"] == "ApplicationEndpoint"
|
||||
assert nodes_by_id["fixture.server.gitea.example.test"]["layer"] == "application"
|
||||
assert nodes_by_id["fixture.server.gitea.default.svc.cluster.local"]["kind"] == "RuntimeService"
|
||||
assert nodes_by_id["fixture.server.gitea.default.svc.cluster.local"]["layer"] == "runtime_service"
|
||||
edge_types = {
|
||||
(element["data"]["source"], element["data"]["target"]): element["data"]["edgeType"]
|
||||
for element in payload["elements"]
|
||||
if "source" in element["data"]
|
||||
}
|
||||
assert edge_types[("fixture.domain.gitea.example.test", "fixture.server.gitea.example.test")] == "names_endpoint"
|
||||
assert (
|
||||
edge_types[
|
||||
(
|
||||
"fixture.server.gitea.default.svc.cluster.local",
|
||||
"fixture.port.gitea.default.svc.cluster.local-3000-tcp",
|
||||
)
|
||||
]
|
||||
== "listens_on"
|
||||
)
|
||||
|
||||
|
||||
def test_cli_exports_graph_explorer_payload(capsys) -> None:
|
||||
assert cli_main(["export", "--format", "graph-explorer"]) == 0
|
||||
payload = json.loads(capsys.readouterr().out)
|
||||
|
||||
Reference in New Issue
Block a user