MCPcopy
hub / github.com/labstack/echo / TestRequestLogger_HandleError

Function TestRequestLogger_HandleError

middleware/request_logger_test.go:230–271  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

228}
229
230func TestRequestLogger_HandleError(t *testing.T) {
231 e := echo.New()
232
233 var actual RequestLoggerValues
234 e.Use(RequestLoggerWithConfig(RequestLoggerConfig{
235 timeNow: func() time.Time {
236 return time.Unix(1631045377, 0).UTC()
237 },
238 HandleError: true,
239 LogStatus: true,
240 LogValuesFunc: func(c *echo.Context, values RequestLoggerValues) error {
241 actual = values
242 return nil
243 },
244 }))
245
246 // to see if "HandleError" works we create custom error handler that uses its own status codes
247 e.HTTPErrorHandler = func(c *echo.Context, err error) {
248 if r, _ := echo.UnwrapResponse(c.Response()); r != nil && r.Committed {
249 return
250 }
251 c.JSON(http.StatusTeapot, "custom error handler")
252 }
253
254 e.GET("/test", func(c *echo.Context) error {
255 return echo.NewHTTPError(http.StatusForbidden, "nope")
256 })
257
258 req := httptest.NewRequest(http.MethodGet, "/test", nil)
259 rec := httptest.NewRecorder()
260
261 e.ServeHTTP(rec, req)
262
263 assert.Equal(t, http.StatusTeapot, rec.Code)
264
265 expect := RequestLoggerValues{
266 StartTime: time.Unix(1631045377, 0).UTC(),
267 Status: http.StatusTeapot,
268 Error: echo.NewHTTPError(http.StatusForbidden, "nope"),
269 }
270 assert.Equal(t, expect, actual)
271}
272
273func TestRequestLogger_LogValuesFuncError(t *testing.T) {
274 e := echo.New()

Callers

nothing calls this directly

Calls 6

RequestLoggerWithConfigFunction · 0.85
ResponseMethod · 0.80
JSONMethod · 0.80
ServeHTTPMethod · 0.80
UseMethod · 0.45
GETMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…