package server import ( "bytes" "io" "net/http" "net/http/httptest" "testing" ) func TestBodyLimitMiddleware_RejectsOversizedBody(t *testing.T) { srv := &Server{} inner := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if _, err := io.ReadAll(r.Body); isRequestBodyTooLarge(err) { w.WriteHeader(http.StatusRequestEntityTooLarge) return } w.WriteHeader(http.StatusOK) }) handler := srv.bodyLimitMiddleware(inner) body := bytes.Repeat([]byte("x"), int(defaultJSONBodyLimit)+1024) req := httptest.NewRequest(http.MethodPost, "/api/v1/chat", bytes.NewReader(body)) rec := httptest.NewRecorder() handler.ServeHTTP(rec, req) if rec.Code != http.StatusRequestEntityTooLarge { t.Fatalf("expected 413, got %d", rec.Code) } }