Files
pulse/cmd/pulse-agent/health_test.go
T
2026-03-18 16:06:30 +00:00

42 lines
892 B
Go

package main
import (
"net/http"
"net/http/httptest"
"sync/atomic"
"testing"
)
func TestHealthHandler_HealthzAlwaysOK(t *testing.T) {
var ready atomic.Bool
h := healthHandler(&ready)
req := httptest.NewRequest(http.MethodGet, "/healthz", nil)
rec := httptest.NewRecorder()
h.ServeHTTP(rec, req)
if rec.Code != http.StatusOK {
t.Fatalf("status = %d, body=%s", rec.Code, rec.Body.String())
}
}
func TestHealthHandler_ReadyzDependsOnReadyFlag(t *testing.T) {
var ready atomic.Bool
h := healthHandler(&ready)
req := httptest.NewRequest(http.MethodGet, "/readyz", nil)
rec := httptest.NewRecorder()
h.ServeHTTP(rec, req)
if rec.Code != http.StatusServiceUnavailable {
t.Fatalf("expected 503, got %d", rec.Code)
}
ready.Store(true)
rec = httptest.NewRecorder()
h.ServeHTTP(rec, req)
if rec.Code != http.StatusOK {
t.Fatalf("expected 200, got %d", rec.Code)
}
}