package proxy_test import ( "net/http" "testing" "sneak.berlin/go/smallwebwaf/internal/proxy" "sneak.berlin/go/smallwebwaf/internal/requestlog" ) func TestHealthEndpointCountsTowardNoLimit(t *testing.T) { t.Parallel() // With a limit of one request a minute, any request counted before // the last one would have it refused. s, _, _ := startWithClock(t, "", map[string]string{rateLimitPerMinute: "1"}) const ( healthChecks = 3 contentType = "text/plain; charset=utf-8" ) for range healthChecks { got := s.adminRequest("", http.MethodGet, proxy.HealthPath, "", http.StatusOK) if string(got.body) != "ok\n" || got.header.Get("Content-Type") != contentType { t.Errorf("health endpoint answered %q with Content-Type %q, want ok "+ "with %q", got.body, got.header.Get("Content-Type"), contentType) } } s.get(client, http.StatusOK, requestlog.ActionForward) for _, line := range s.out.endedLines(t, healthChecks)[:healthChecks] { if line.ResponseContentType != contentType { t.Errorf("health check's log line has response_content_type %q, "+ "want %q", line.ResponseContentType, contentType) } } }