File tree 2 files changed +18
-2
lines changed
2 files changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -56,11 +56,11 @@ func (r *Response) WriteHeader(code int) {
56
56
r .echo .Logger .Warn ("response already committed" )
57
57
return
58
58
}
59
+ r .Status = code
59
60
for _ , fn := range r .beforeFuncs {
60
61
fn ()
61
62
}
62
- r .Status = code
63
- r .Writer .WriteHeader (code )
63
+ r .Writer .WriteHeader (r .Status )
64
64
r .Committed = true
65
65
}
66
66
Original file line number Diff line number Diff line change @@ -56,3 +56,19 @@ func TestResponse_Flush(t *testing.T) {
56
56
res .Flush ()
57
57
assert .True (t , rec .Flushed )
58
58
}
59
+
60
+ func TestResponse_ChangeStatusCodeBeforeWrite (t * testing.T ) {
61
+ e := New ()
62
+ rec := httptest .NewRecorder ()
63
+ res := & Response {echo : e , Writer : rec }
64
+
65
+ res .Before (func () {
66
+ if 200 < res .Status && res .Status < 300 {
67
+ res .Status = 200
68
+ }
69
+ })
70
+
71
+ res .WriteHeader (209 )
72
+
73
+ assert .Equal (t , http .StatusOK , rec .Code )
74
+ }
You can’t perform that action at this time.
0 commit comments