diff --git a/response_writer.go b/response_writer.go index 26826689..5f1e777d 100644 --- a/response_writer.go +++ b/response_writer.go @@ -61,6 +61,7 @@ func (w *responseWriter) WriteHeader(code int) { if code > 0 && w.status != code { if w.Written() { debugPrint("[WARNING] Headers were already written. Wanted to override status code %d with %d", w.status, code) + return } w.status = code } diff --git a/response_writer_test.go b/response_writer_test.go index 1f113e74..8b154faf 100644 --- a/response_writer_test.go +++ b/response_writer_test.go @@ -73,6 +73,10 @@ func TestResponseWriterWriteHeadersNow(t *testing.T) { writer.size = 10 w.WriteHeaderNow() assert.Equal(t, 10, w.Size()) + + w.WriteHeader(http.StatusOK) + assert.Equal(t, http.StatusMultipleChoices, w.Status()) + assert.Equal(t, http.StatusMultipleChoices, testWriter.Code) } func TestResponseWriterWrite(t *testing.T) {