fix: return non-nil channel when CloseNotifier is not supported

This commit is contained in:
Lev 2026-04-15 20:33:43 +03:00
parent e16930e4aa
commit fb190d5c5e
2 changed files with 8 additions and 3 deletions

View File

@ -134,7 +134,7 @@ func (w *responseWriter) CloseNotify() <-chan bool {
if cn, ok := w.ResponseWriter.(http.CloseNotifier); ok {
return cn.CloseNotify()
}
return nil
return make(chan bool)
}
// Flush implements the http.Flusher interface.

View File

@ -118,7 +118,7 @@ func TestResponseWriterHijack(t *testing.T) {
assert.True(t, w.Written())
ch := w.CloseNotify()
assert.Nil(t, ch)
assert.NotNil(t, ch)
w.Flush()
}
@ -338,7 +338,12 @@ func TestCloseNotifyWithoutCloseNotifier(t *testing.T) {
w.reset(rw)
ch := w.CloseNotify()
assert.Nil(t, ch, "Expected CloseNotify channel to be nil when underlying writer does not support it")
assert.NotNil(t, ch, "Expected non-nil channel when CloseNotifier is not supported")
select {
case <-ch:
t.Fatal("channel should never fire when CloseNotifier is not supported")
default:
}
}
func TestHijackWithoutHijacker(t *testing.T) {