From 1fde3243c2ec2931ce5e68c09cdfe72627108181 Mon Sep 17 00:00:00 2001 From: Raju Ahmed Date: Mon, 26 Jan 2026 16:39:16 +0600 Subject: [PATCH 1/2] chore(response_writer): add Unwrap() method to `ResponseWriter` interface --- response_writer.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/response_writer.go b/response_writer.go index 9035e6f1..142a7cc5 100644 --- a/response_writer.go +++ b/response_writer.go @@ -44,6 +44,9 @@ type ResponseWriter interface { // Pusher get the http.Pusher for server push Pusher() http.Pusher + + // Unwrap get the underlying http.ResponseWriter + Unwrap() http.ResponseWriter } type responseWriter struct { From 675838ec999411f1ed5b3e3d88de0e6f483824a2 Mon Sep 17 00:00:00 2001 From: Raju Ahmed Date: Fri, 27 Mar 2026 07:32:52 +0600 Subject: [PATCH 2/2] test(response_writer): add tests for ResponseWriter.Unwrap method --- response_writer_test.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/response_writer_test.go b/response_writer_test.go index dfc1d2c6..255559a7 100644 --- a/response_writer_test.go +++ b/response_writer_test.go @@ -33,12 +33,23 @@ func init() { SetMode(TestMode) } +// test for ResponseWriter.Unwrap func TestResponseWriterUnwrap(t *testing.T) { testWriter := httptest.NewRecorder() writer := &responseWriter{ResponseWriter: testWriter} assert.Same(t, testWriter, writer.Unwrap()) } +func TestResponseWriterUnwrapViaInterface(t *testing.T) { + testWriter := httptest.NewRecorder() + writer := &responseWriter{} + writer.reset(testWriter) + var w ResponseWriter = writer + + unwrapped := w.Unwrap() + assert.Same(t, testWriter, unwrapped) +} + func TestResponseWriterReset(t *testing.T) { testWriter := httptest.NewRecorder() writer := &responseWriter{}