From 10c5f962350bd1faedc18cc821858f04aa71d749 Mon Sep 17 00:00:00 2001 From: Leonardo Araujo Date: Tue, 8 Aug 2023 02:22:35 -0300 Subject: [PATCH 1/2] increased unit tests coverage --- render/render_test.go | 13 +++++++++++++ response_writer_test.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/render/render_test.go b/render/render_test.go index 86dc362de2..c9db635f04 100644 --- a/render/render_test.go +++ b/render/render_test.go @@ -578,3 +578,16 @@ func TestRenderReaderNoContentLength(t *testing.T) { assert.Equal(t, headers["Content-Disposition"], w.Header().Get("Content-Disposition")) assert.Equal(t, headers["x-request-id"], w.Header().Get("x-request-id")) } + +func TestRenderWriteError(t *testing.T) { + data := []interface{}{"value1", "value2"} + prefix := "my-prefix:" + r := SecureJSON{Data: data, Prefix: prefix} + ew := &errorWriter{ + bufString: prefix, + ResponseRecorder: httptest.NewRecorder(), + } + err := r.Render(ew) + assert.NotNil(t, err) + assert.Equal(t, `write "my-prefix:" error`, err.Error()) +} diff --git a/response_writer_test.go b/response_writer_test.go index 9fd5e87cce..2300fe8808 100644 --- a/response_writer_test.go +++ b/response_writer_test.go @@ -156,3 +156,35 @@ func TestResponseWriterStatusCode(t *testing.T) { // status must be 200 although we tried to change it assert.Equal(t, http.StatusOK, w.Status()) } + +// mockPusherResponseWriter is an http.ResponseWriter that implements http.Pusher. +type mockPusherResponseWriter struct { + http.ResponseWriter +} + +func (m *mockPusherResponseWriter) Push(target string, opts *http.PushOptions) error { + return nil +} + +// nonPusherResponseWriter is an http.ResponseWriter that does not implement http.Pusher. +type nonPusherResponseWriter struct { + http.ResponseWriter +} + +func TestPusherWithPusher(t *testing.T) { + rw := &mockPusherResponseWriter{} + w := &responseWriter{ResponseWriter: rw} + + pusher := w.Pusher() + assert.NotNil(t, pusher, "Expected pusher to be non-nil") + _, ok := pusher.(http.Pusher) + assert.True(t, ok, "Expected pusher to implement http.Pusher") +} + +func TestPusherWithoutPusher(t *testing.T) { + rw := &nonPusherResponseWriter{} + w := &responseWriter{ResponseWriter: rw} + + pusher := w.Pusher() + assert.Nil(t, pusher, "Expected pusher to be nil") +} From 1c2023545f982ca5d73d75156b42b62841e5a498 Mon Sep 17 00:00:00 2001 From: Leonardo Araujo Date: Tue, 8 Aug 2023 22:01:43 -0300 Subject: [PATCH 2/2] fix: golangci-lint for TestPusherWithPusher --- response_writer_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/response_writer_test.go b/response_writer_test.go index 2300fe8808..964aa3071e 100644 --- a/response_writer_test.go +++ b/response_writer_test.go @@ -177,8 +177,6 @@ func TestPusherWithPusher(t *testing.T) { pusher := w.Pusher() assert.NotNil(t, pusher, "Expected pusher to be non-nil") - _, ok := pusher.(http.Pusher) - assert.True(t, ok, "Expected pusher to implement http.Pusher") } func TestPusherWithoutPusher(t *testing.T) {