TestResponseTimeMiddleware() — fiber Function Reference
Architecture documentation for the TestResponseTimeMiddleware() function in responsetime_test.go from the fiber codebase.
Entity Profile
Dependency Diagram
graph TD 725057f8_d16c_e9ce_d05e_5dd4d2b4a661["TestResponseTimeMiddleware()"] 52de1faa_55e4_78d1_8dce_7c80d053db1b["responsetime_test.go"] 725057f8_d16c_e9ce_d05e_5dd4d2b4a661 -->|defined in| 52de1faa_55e4_78d1_8dce_7c80d053db1b style 725057f8_d16c_e9ce_d05e_5dd4d2b4a661 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
middleware/responsetime/responsetime_test.go lines 14–99
func TestResponseTimeMiddleware(t *testing.T) {
t.Parallel()
boom := errors.New("boom")
tests := []struct {
name string
expectedStatus int
useCustomErrorHandler bool
returnError bool
expectHeader bool
skipWithNext bool
}{
{
name: "sets duration header",
expectedStatus: fiber.StatusOK,
expectHeader: true,
},
{
name: "skips when Next returns true",
expectedStatus: fiber.StatusOK,
expectHeader: false,
skipWithNext: true,
},
{
name: "propagates errors",
expectedStatus: fiber.StatusTeapot,
useCustomErrorHandler: true,
returnError: true,
expectHeader: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
configs := []Config(nil)
if tt.skipWithNext {
configs = []Config{{
Next: func(fiber.Ctx) bool {
return true
},
}}
}
appConfig := fiber.Config{}
if tt.useCustomErrorHandler {
appConfig.ErrorHandler = func(c fiber.Ctx, err error) error {
t.Helper()
require.ErrorIs(t, err, boom)
return c.Status(fiber.StatusTeapot).SendString(err.Error())
}
}
app := fiber.New(appConfig)
app.Use(New(configs...))
app.Get("/", func(c fiber.Ctx) error {
if tt.returnError {
return boom
}
return c.SendStatus(fiber.StatusOK)
})
resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/", http.NoBody))
require.NoError(t, err)
require.Equal(t, tt.expectedStatus, resp.StatusCode)
header := resp.Header.Get(fiber.HeaderXResponseTime)
if tt.expectHeader {
require.NotEmpty(t, header)
_, parseErr := time.ParseDuration(header)
require.NoError(t, parseErr)
return
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does TestResponseTimeMiddleware() do?
TestResponseTimeMiddleware() is a function in the fiber codebase, defined in middleware/responsetime/responsetime_test.go.
Where is TestResponseTimeMiddleware() defined?
TestResponseTimeMiddleware() is defined in middleware/responsetime/responsetime_test.go at line 14.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free