From a45ee57da76b7b84dc37281a6e13452dfb194893 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Fri, 6 Mar 2026 22:37:27 +0300 Subject: [PATCH] server: use uppercase per-upstream status in /health; verify in tests Signed-off-by: NotAShelf Change-Id: I26a71054250c71747e92c2803d8c39ed6a6a6964 --- internal/server/server.go | 2 +- internal/server/server_test.go | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/internal/server/server.go b/internal/server/server.go index a059918..71fbe57 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -84,7 +84,7 @@ func (s *Server) handleHealth(w http.ResponseWriter, _ *http.Request) { for i, h := range sorted { upstreams[i] = upstreamStatus{ URL: h.URL, - Status: strings.ToLower(h.Status.String()), + Status: h.Status.String(), LatencyMs: h.EMALatency, ConsecutiveFails: h.ConsecutiveFails, } diff --git a/internal/server/server_test.go b/internal/server/server_test.go index 9f73b68..223b370 100644 --- a/internal/server/server_test.go +++ b/internal/server/server_test.go @@ -431,6 +431,26 @@ func TestHealthEndpointDegraded(t *testing.T) { if len(resp.Upstreams) != 2 { t.Errorf("upstreams = %d, want 2", len(resp.Upstreams)) } + + var foundDegraded bool + for _, u := range resp.Upstreams { + if u.URL == "https://up2.example.com" && u.Status == "DEGRADED" { + foundDegraded = true + } + } + if !foundDegraded { + t.Error("expected up2 to have status DEGRADED") + } + + var foundActive bool + for _, u := range resp.Upstreams { + if u.URL == "https://up1.example.com" && u.Status == "ACTIVE" { + foundActive = true + } + } + if !foundActive { + t.Error("expected up1 to have status ACTIVE") + } } func TestHealthEndpointAllDown(t *testing.T) {