feat(topology): persist complete diagram semantics

This commit is contained in:
2026-07-09 21:53:00 +08:00
parent e7becba0b0
commit 0dbcd3086e
4 changed files with 139 additions and 44 deletions
+40
View File
@@ -124,6 +124,46 @@ class TopologyApiQueryTests(unittest.TestCase):
},
)
def test_layout_contains_members_labels_and_radiators(self) -> None:
response = self.client.get(
"/api/v1/bases/guanghan/snapshot?mission=GHC-05"
)
nodes = response.get_json()["layout"]["nodes"]
by_key = {node["nodeKey"]: node for node in nodes}
self.assertEqual(
by_key["power_west_group"]["memberKeys"],
["isru_module", "mining_module", "ore_fuel_storage"],
)
self.assertEqual(
by_key["power_east_group"]["memberKeys"],
["fuel_storage_mod", "centrifuge_mod"],
)
self.assertEqual(
by_key["core_cabin"]["memberKeys"],
["core_cabin"],
)
for node in nodes:
self.assertIn("displayMeta", node)
self.assertIn("displayHint", node)
self.assertIn("decorations", node)
radiator_nodes = {
node["nodeKey"]
for node in nodes
if node["decorations"].get("radiator")
}
self.assertEqual(
radiator_nodes,
{
"power_storage_rack",
"power_west_group",
"power_east_group",
"nuclear_reactor",
},
)
if __name__ == "__main__":
unittest.main()