diff --git a/appc/appconnector.go b/appc/appconnector.go index a0c3ca65f..9b8398811 100644 --- a/appc/appconnector.go +++ b/appc/appconnector.go @@ -113,7 +113,7 @@ func (e *AppConnector) DomainRoutes() map[string][]netip.Addr { drCopy := make(map[string][]netip.Addr) for k, v := range e.domains { - copy(drCopy[k], v) + drCopy[k] = append(drCopy[k], v...) } return drCopy diff --git a/appc/appconnector_test.go b/appc/appconnector_test.go index 002f16f1c..9614e0602 100644 --- a/appc/appconnector_test.go +++ b/appc/appconnector_test.go @@ -5,6 +5,7 @@ package appc import ( "net/netip" + "reflect" "slices" "testing" @@ -35,6 +36,21 @@ func TestUpdateDomains(t *testing.T) { } } +func TestDomainRoutes(t *testing.T) { + rc := &routeCollector{} + a := NewAppConnector(t.Logf, rc) + a.UpdateDomains([]string{"example.com"}) + a.ObserveDNSResponse(dnsResponse("example.com.", "192.0.0.8")) + + want := map[string][]netip.Addr{ + "example.com": {netip.MustParseAddr("192.0.0.8")}, + } + + if got := a.DomainRoutes(); !reflect.DeepEqual(got, want) { + t.Fatalf("DomainRoutes: got %v, want %v", got, want) + } +} + func TestObserveDNSResponse(t *testing.T) { rc := &routeCollector{} a := NewAppConnector(t.Logf, rc)