@@ -11,6 +11,7 @@ import (
1111
1212 "github.com/gofiber/fiber/v3"
1313 "github.com/gofiber/fiber/v3/middleware/cors"
14+ "github.com/gofiber/fiber/v3/middleware/helmet"
1415 "github.com/valyala/fasthttp"
1516 "github.com/valyala/fasthttp/fasthttputil"
1617)
@@ -103,6 +104,22 @@ func Test_Integration_App_ServerErrorHandler_PreservesCORSHeadersOnBodyLimit(t *
103104 require .Equal (t , "Origin" , string (resp .Header .Peek (fiber .HeaderVary )))
104105}
105106
107+ func Test_Integration_App_ServerErrorHandler_PreservesHelmetHeadersOnBodyLimit (t * testing.T ) {
108+ app := fiber .New (fiber.Config {BodyLimit : 16 })
109+ app .Use (helmet .New ())
110+ app .Post ("/" , func (c fiber.Ctx ) error {
111+ return c .SendStatus (fiber .StatusOK )
112+ })
113+
114+ resp := performOversizedRequest (t , app , nil )
115+
116+ require .Equal (t , fiber .StatusRequestEntityTooLarge , resp .StatusCode ())
117+ require .Equal (t , "nosniff" , string (resp .Header .Peek (fiber .HeaderXContentTypeOptions )))
118+ require .Equal (t , "same-origin" , string (resp .Header .Peek ("Cross-Origin-Opener-Policy" )))
119+ require .Equal (t , "same-origin" , string (resp .Header .Peek ("Cross-Origin-Resource-Policy" )))
120+ require .Equal (t , "require-corp" , string (resp .Header .Peek ("Cross-Origin-Embedder-Policy" )))
121+ }
122+
106123func Test_Integration_App_ServerErrorHandler_RetainsHeadersFromSubsequentMiddleware (t * testing.T ) {
107124 app := fiber .New (fiber.Config {BodyLimit : 8 })
108125 app .Use (func (c fiber.Ctx ) error {
0 commit comments