From 3acb8883096f56908442ef00e9756983c183be8e Mon Sep 17 00:00:00 2001 From: Julien Voisin Date: Thu, 21 Aug 2025 04:31:28 +0200 Subject: [PATCH] refactor(response): simplify switch-case and remove unnecessary defer - b.body can never be of type error, so let's remove it from the switch-case construct. - there is no need to use defer when the only return statement is two lines after. --- internal/http/response/builder.go | 8 +++----- internal/http/response/builder_test.go | 22 ---------------------- 2 files changed, 3 insertions(+), 27 deletions(-) diff --git a/internal/http/response/builder.go b/internal/http/response/builder.go index d9de2131..4d59e91b 100644 --- a/internal/http/response/builder.go +++ b/internal/http/response/builder.go @@ -84,8 +84,6 @@ func (b *Builder) Write() { b.compress(v) case string: b.compress([]byte(v)) - case error: - b.compress([]byte(v.Error())) case io.Reader: // Compression not implemented in this case b.writeHeaders() @@ -117,24 +115,24 @@ func (b *Builder) compress(data []byte) { b.writeHeaders() brotliWriter := brotli.NewWriterV2(b.w, brotli.DefaultCompression) - defer brotliWriter.Close() brotliWriter.Write(data) + brotliWriter.Close() return case strings.Contains(acceptEncoding, "gzip"): b.headers["Content-Encoding"] = "gzip" b.writeHeaders() gzipWriter := gzip.NewWriter(b.w) - defer gzipWriter.Close() gzipWriter.Write(data) + gzipWriter.Close() return case strings.Contains(acceptEncoding, "deflate"): b.headers["Content-Encoding"] = "deflate" b.writeHeaders() flateWriter, _ := flate.NewWriter(b.w, -1) - defer flateWriter.Close() flateWriter.Write(data) + flateWriter.Close() return } } diff --git a/internal/http/response/builder_test.go b/internal/http/response/builder_test.go index e5710b08..ddefc5c9 100644 --- a/internal/http/response/builder_test.go +++ b/internal/http/response/builder_test.go @@ -4,7 +4,6 @@ package response // import "miniflux.app/v2/internal/http/response" import ( - "errors" "net/http" "net/http/httptest" "strings" @@ -105,27 +104,6 @@ func TestBuildResponseWithAttachment(t *testing.T) { } } -func TestBuildResponseWithError(t *testing.T) { - r, err := http.NewRequest("GET", "/", nil) - if err != nil { - t.Fatal(err) - } - - w := httptest.NewRecorder() - - handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - New(w, r).WithBody(errors.New("Some error")).Write() - }) - - handler.ServeHTTP(w, r) - - expectedBody := `Some error` - actualBody := w.Body.String() - if actualBody != expectedBody { - t.Fatalf(`Unexpected body, got %s instead of %s`, actualBody, expectedBody) - } -} - func TestBuildResponseWithByteBody(t *testing.T) { r, err := http.NewRequest("GET", "/", nil) if err != nil {