diff --git a/pkg/utils/namespace_manager.go b/pkg/utils/namespace_manager.go index c1ba15f4..4f0e7ba0 100644 --- a/pkg/utils/namespace_manager.go +++ b/pkg/utils/namespace_manager.go @@ -283,6 +283,9 @@ func (m *inMemoryNamespaceManager) Summary() NamespaceManagerSummary { SourceCounts: make(map[NamespaceSource]int), Subscribers: m.SnapshotSubscribers(), } + if summary.Subscribers == nil { + summary.Subscribers = []string{} + } for _, record := range records { summary.PhaseCounts[record.Phase]++ summary.SourceCounts[record.Source]++ diff --git a/pkg/utils/namespace_manager_test.go b/pkg/utils/namespace_manager_test.go index cecec3d2..c2930453 100644 --- a/pkg/utils/namespace_manager_test.go +++ b/pkg/utils/namespace_manager_test.go @@ -582,6 +582,23 @@ func TestLogNamespaceManagerSummary(t *testing.T) { LogNamespaceManagerSummary(logger, "namespace summary", summary) } + +func TestNamespaceManagerSummaryEmptyContract(t *testing.T) { + manager := NewNamespaceManager() + summary := manager.Summary() + if summary.PhaseCounts == nil { + t.Fatalf("expected phase counts map to be initialized") + } + if summary.SourceCounts == nil { + t.Fatalf("expected source counts map to be initialized") + } + if summary.Subscribers == nil { + t.Fatalf("expected subscribers slice to be initialized") + } + if len(summary.Subscribers) != 0 { + t.Fatalf("expected no subscribers in empty summary") + } +} func TestLogNamespaceManagerSummaryWithNilLogger(t *testing.T) { LogNamespaceManagerSummary(nil, "ignored", NamespaceManagerSummary{TotalNamespaces: 1}) }