diff --git a/response_writer.go b/response_writer.go index 6907e514..0f66601e 100644 --- a/response_writer.go +++ b/response_writer.go @@ -117,7 +117,11 @@ func (w *responseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) { if w.size < 0 { w.size = 0 } - return w.ResponseWriter.(http.Hijacker).Hijack() + hijacker, ok := w.ResponseWriter.(http.Hijacker) + if !ok { + return nil, nil, errors.New("response writer does not support Hijack") + } + return hijacker.Hijack() } // CloseNotify implements the http.CloseNotifier interface. diff --git a/response_writer_test.go b/response_writer_test.go index dfc1d2c6..c4b791ff 100644 --- a/response_writer_test.go +++ b/response_writer_test.go @@ -113,10 +113,8 @@ func TestResponseWriterHijack(t *testing.T) { writer.reset(testWriter) w := ResponseWriter(writer) - assert.Panics(t, func() { - _, _, err := w.Hijack() - require.NoError(t, err) - }) + _, _, err := w.Hijack() + assert.Equal(t, "response writer does not support Hijack", err.Error()) assert.True(t, w.Written()) assert.Panics(t, func() {