package server import ( "net/http" "net/http/httptest" "testing" ) func TestBasicAuthAllowsHealthzWithoutCredentials(t *testing.T) { h := basicAuth(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNoContent) }), "admin", "secret") req := httptest.NewRequest(http.MethodGet, "/healthz", nil) rr := httptest.NewRecorder() h.ServeHTTP(rr, req) if rr.Code != http.StatusNoContent { t.Fatalf("got %d", rr.Code) } } func TestBasicAuthProtectsUI(t *testing.T) { h := basicAuth(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNoContent) }), "admin", "secret") req := httptest.NewRequest(http.MethodGet, "/", nil) rr := httptest.NewRecorder() h.ServeHTTP(rr, req) if rr.Code != http.StatusUnauthorized { t.Fatalf("got %d", rr.Code) } req = httptest.NewRequest(http.MethodGet, "/", nil) req.SetBasicAuth("admin", "secret") rr = httptest.NewRecorder() h.ServeHTTP(rr, req) if rr.Code != http.StatusNoContent { t.Fatalf("got %d", rr.Code) } }