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

Function TestDefaultHTTPErrorHandler

echo_test.go:1292–1394  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1290}
1291
1292func TestDefaultHTTPErrorHandler(t *testing.T) {
1293 var testCases = []struct {
1294 whenError error
1295 name string
1296 whenMethod string
1297 expectBody string
1298 expectLogged string
1299 expectStatus int
1300 givenExposeError bool
1301 givenLoggerFunc bool
1302 }{
1303 {
1304 name: "ok, expose error = true, HTTPError, no wrapped err",
1305 givenExposeError: true,
1306 whenError: &HTTPError{Code: http.StatusTeapot, Message: "my_error"},
1307 expectStatus: http.StatusTeapot,
1308 expectBody: `{"message":"my_error"}` + "\n",
1309 },
1310 {
1311 name: "ok, expose error = true, HTTPError + wrapped error",
1312 givenExposeError: true,
1313 whenError: HTTPError{Code: http.StatusTeapot, Message: "my_error"}.Wrap(errors.New("internal_error")),
1314 expectStatus: http.StatusTeapot,
1315 expectBody: `{"error":"internal_error","message":"my_error"}` + "\n",
1316 },
1317 {
1318 name: "ok, expose error = true, HTTPError + wrapped HTTPError",
1319 givenExposeError: true,
1320 whenError: HTTPError{Code: http.StatusTeapot, Message: "my_error"}.Wrap(&HTTPError{Code: http.StatusTeapot, Message: "early_error"}),
1321 expectStatus: http.StatusTeapot,
1322 expectBody: `{"error":"code=418, message=early_error","message":"my_error"}` + "\n",
1323 },
1324 {
1325 name: "ok, expose error = false, HTTPError",
1326 whenError: &HTTPError{Code: http.StatusTeapot, Message: "my_error"},
1327 expectStatus: http.StatusTeapot,
1328 expectBody: `{"message":"my_error"}` + "\n",
1329 },
1330 {
1331 name: "ok, expose error = false, HTTPError, no message",
1332 whenError: &HTTPError{Code: http.StatusTeapot, Message: ""},
1333 expectStatus: http.StatusTeapot,
1334 expectBody: `{"message":"I'm a teapot"}` + "\n",
1335 },
1336 {
1337 name: "ok, expose error = false, HTTPError + internal HTTPError",
1338 whenError: HTTPError{Code: http.StatusTooEarly, Message: "my_error"}.Wrap(&HTTPError{Code: http.StatusTeapot, Message: "early_error"}),
1339 expectStatus: http.StatusTooEarly,
1340 expectBody: `{"message":"my_error"}` + "\n",
1341 },
1342 {
1343 name: "ok, expose error = true, Error",
1344 givenExposeError: true,
1345 whenError: fmt.Errorf("my errors wraps: %w", errors.New("internal_error")),
1346 expectStatus: http.StatusInternalServerError,
1347 expectBody: `{"error":"my errors wraps: internal_error","message":"Internal Server Error"}` + "\n",
1348 },
1349 {

Callers

nothing calls this directly

Calls 6

NewFunction · 0.85
DefaultHTTPErrorHandlerFunction · 0.85
requestFunction · 0.85
WrapMethod · 0.45
AnyMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…