package topology import "testing" func TestNormalizeServersProducesPythonCompatibleRecords(t *testing.T) { servers := []map[string]string{ {"ServerID": "master", "Services": "commit-server", "Type": "server"}, {"ServerID": "edge", "Services": "edge-server", "Type": "server", "ExternalAddress": "edge.example.com:1666"}, } topology := []map[string]string{ {"ServerID": "edge", "ServerAddress": "edge.example.com:1666", "TargetServerID": "master", "Version": "P4D/2026.1"}, {"ServerAddress": "10.0.0.5:1666", "TargetAddress": "master.example.com:1666", "TargetServerID": "master", "Type": "broker", "Version": "P4BROKER/2026.1"}, } lookup := map[string]string{"edge.example.com": "Name: edge.example.com\nAddress: 10.0.0.10"} got := NormalizeServers(servers, topology, lookup) if len(got) != 3 { t.Fatalf("NormalizeServers() produced %d records, want 3: %#v", len(got), got) } byID := serverByID(got) if edge := byID["edge"]; edge.Target != "master" || edge.Port != "1666" || edge.IP != "10.0.0.10" || edge.Version != "P4D/2026.1" || !edge.Participates { t.Errorf("edge normalization = %#v", edge) } if broker := byID["broker-10-0-0-5"]; broker.ServerType != "broker" || broker.Target != "master" || broker.Notes[0] != "broker for master" { t.Errorf("broker normalization = %#v", broker) } if master := byID["master"]; master.TargetSource != "root" { t.Errorf("master normalization = %#v", master) } } func serverByID(servers []Server) map[string]Server { byID := make(map[string]Server, len(servers)) for _, server := range servers { byID[server.ServerID] = server } return byID }