From 4f107b8ad15f9473302b26cdde5890181b95d30e Mon Sep 17 00:00:00 2001 From: Tai Groot Date: Sun, 3 May 2026 06:01:54 +0000 Subject: [PATCH] fix(log): sort namespace registry output --- log/log.go | 2 ++ log/log_test.go | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/log/log.go b/log/log.go index f3243f6..be5646d 100644 --- a/log/log.go +++ b/log/log.go @@ -6,6 +6,7 @@ import ( "fmt" "os" "runtime" + "sort" "strings" "sync" "time" @@ -139,6 +140,7 @@ func GetNamespaces() []string { for ns := range namespaces { result = append(result, ns) } + sort.Strings(result) return result } diff --git a/log/log_test.go b/log/log_test.go index f9477a6..2ade7ae 100644 --- a/log/log_test.go +++ b/log/log_test.go @@ -419,6 +419,35 @@ func TestGetNamespaces(t *testing.T) { } } +func TestGetNamespacesSorted(t *testing.T) { + NewLogger("sort-ns-charlie").Info("register charlie") + NewLogger("sort-ns-alpha").Info("register alpha") + NewLogger("sort-ns-bravo").Info("register bravo") + + nss := GetNamespaces() + indexes := make(map[string]int, len(nss)) + for index, ns := range nss { + indexes[ns] = index + } + + alphaIndex, ok := indexes["sort-ns-alpha"] + if !ok { + t.Fatalf("missing namespace %q in %v", "sort-ns-alpha", nss) + } + bravoIndex, ok := indexes["sort-ns-bravo"] + if !ok { + t.Fatalf("missing namespace %q in %v", "sort-ns-bravo", nss) + } + charlieIndex, ok := indexes["sort-ns-charlie"] + if !ok { + t.Fatalf("missing namespace %q in %v", "sort-ns-charlie", nss) + } + + if !(alphaIndex < bravoIndex && bravoIndex < charlieIndex) { + t.Fatalf("expected sorted namespace order, got %v", nss) + } +} + // TestLoggerDebugln verifies the Debugln method on Logger. func TestLoggerDebugln(t *testing.T) { c := CreateClient("debugln-test")