diff --git a/doc/thinking/2026-04-26-namespace-manager-step48.md b/doc/thinking/2026-04-26-namespace-manager-step48.md index 11879edc..d264c2c5 100644 --- a/doc/thinking/2026-04-26-namespace-manager-step48.md +++ b/doc/thinking/2026-04-26-namespace-manager-step48.md @@ -2,6 +2,20 @@ ## Цель шага +Добавить маленький, но полезный helper поверх summary/debug contract: проверку, есть ли вообще живые namespace-ы. + +## Что меняем + +1. В `NamespaceManagerSummary` добавляем `HasActiveNamespaces()`. +2. Добавляем unit tests на true/false path. + +## Что НЕ меняем + +- не меняем summary counters; +- не меняем watcher behavior.# 2026-04-26 — NamespaceManager rewrite, step 48 + +## Цель шага + Убрать двусмысленность в `NamespaceManagerSummary`: сейчас `TotalNamespaces` включает и removed-записи. ## Что меняем diff --git a/pkg/utils/namespace_manager_model.go b/pkg/utils/namespace_manager_model.go index 763d467e..874b0c04 100644 --- a/pkg/utils/namespace_manager_model.go +++ b/pkg/utils/namespace_manager_model.go @@ -81,6 +81,10 @@ type NamespaceManagerSummary struct { Subscribers []string } +func (summary NamespaceManagerSummary) HasActiveNamespaces() bool { + return summary.LiveNamespaces > 0 +} + type ManagedNamespaceWatcherConfig struct { Component string Namespaces []string diff --git a/pkg/utils/namespace_manager_model_test.go b/pkg/utils/namespace_manager_model_test.go index 644eee08..b3e9af95 100644 --- a/pkg/utils/namespace_manager_model_test.go +++ b/pkg/utils/namespace_manager_model_test.go @@ -161,3 +161,14 @@ func TestNamespaceManagerSummaryZeroValue(t *testing.T) { t.Fatalf("expected zero total namespaces") } } + +func TestNamespaceManagerSummaryHasActiveNamespaces(t *testing.T) { + summary := NamespaceManagerSummary{LiveNamespaces: 1} + if !summary.HasActiveNamespaces() { + t.Fatalf("expected positive live count to report active namespaces") + } + summary.LiveNamespaces = 0 + if summary.HasActiveNamespaces() { + t.Fatalf("expected zero live count to report no active namespaces") + } +}