package main import ( "net/http" "net/http/httptest" "testing" "scm.bstein.dev/bstein/Pegasus/backend/internal" ) func TestRedactHeaders(t *testing.T) { got := redactHeaders(http.Header{ "Cookie": []string{"session"}, "Authorization": []string{"bearer token"}, "X-Token": []string{"secret"}, "X-Other": []string{"ok"}, }) if got.Get("Cookie") != "" { t.Fatalf("expected cookie to be redacted, got %q", got.Get("Cookie")) } if got.Get("Authorization") != "" { t.Fatalf("expected authorization to be redacted, got %q", got.Get("Authorization")) } if got.Get("X-Token") != "" { t.Fatalf("expected token header to be redacted, got %q", got.Get("X-Token")) } if got.Get("X-Other") != "ok" { t.Fatalf("expected non-sensitive header to pass through, got %q", got.Get("X-Other")) } } func TestDebugHandlerWrapsHandler(t *testing.T) { origDebug := internal.Debug defer func() { internal.Debug = origDebug }() internal.Debug = true called := false h := debugHandler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { called = true w.WriteHeader(http.StatusTeapot) })) rr := httptest.NewRecorder() h.ServeHTTP(rr, httptest.NewRequest(http.MethodGet, "/test", nil)) if !called { t.Fatalf("expected wrapped handler to run") } if rr.Code != http.StatusTeapot { t.Fatalf("unexpected status %d", rr.Code) } }