Skip to content

Commit e08b5b0

Browse files
authored
fix: write status code if it's not written yet (#31)
1 parent 9b710b4 commit e08b5b0

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

kid.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,10 @@ func (k *Kid) ServeHTTP(w http.ResponseWriter, r *http.Request) {
201201
k.errorHandler(c, err)
202202
}
203203

204+
if !c.Response().Written() {
205+
c.Response().WriteHeaderNow()
206+
}
207+
204208
k.pool.Put(c)
205209
}
206210

kid_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,22 @@ func TestKidServeHTTP_ErrorReturnedByHandler(t *testing.T) {
456456
assert.Equal(t, "{\"message\":\"Forbidden\"}\n", res.Body.String())
457457
}
458458

459+
func TestKidServeHTTP_WriteStatusCodeIfNotWritten(t *testing.T) {
460+
k := New()
461+
462+
k.GET("/test", func(c *Context) error {
463+
c.Response().WriteHeader(http.StatusCreated)
464+
return nil
465+
})
466+
467+
req := httptest.NewRequest(http.MethodGet, "/test", nil)
468+
res := httptest.NewRecorder()
469+
470+
k.ServeHTTP(res, req)
471+
472+
assert.Equal(t, http.StatusCreated, res.Code)
473+
}
474+
459475
func TestKidDebug(t *testing.T) {
460476
k := New()
461477
k.debug = false

0 commit comments

Comments
 (0)