MCPcopy
hub / github.com/gofiber/fiber / TestAutoRegisterHeadRoutes

Function TestAutoRegisterHeadRoutes

router_test.go:346–587  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

344}
345
346func TestAutoRegisterHeadRoutes(t *testing.T) {
347 t.Parallel()
348
349 cases := []struct {
350 name string
351 }{
352 {name: "auto registers head for get"},
353 {name: "disable auto register config"},
354 {name: "explicit head overrides auto head route"},
355 {name: "auto head for grouped routes"},
356 {name: "static handler auto head"},
357 {name: "head without matching route returns 404"},
358 {name: "late explicit get keeps explicit head"},
359 {name: "route listing includes auto head"},
360 {name: "head mirrors status without body"},
361 }
362
363 requireClose := func(tb testing.TB, closer io.Closer) {
364 tb.Helper()
365 require.NoError(tb, closer.Close())
366 }
367
368 registerCleanup := func(tb testing.TB, body io.ReadCloser) {
369 tb.Helper()
370 tb.Cleanup(func() {
371 requireClose(tb, body)
372 })
373 }
374
375 runners := []func(t *testing.T){
376 func(t *testing.T) {
377 t.Helper()
378 app := New()
379 app.Get("/", func(c Ctx) error {
380 c.Set("X-Test", "auto")
381 return c.SendString("Hello")
382 })
383
384 respHead, err := app.Test(httptest.NewRequest(MethodHead, "/", http.NoBody))
385 require.NoError(t, err)
386 registerCleanup(t, respHead.Body)
387 require.Equal(t, StatusOK, respHead.StatusCode)
388 require.Equal(t, int64(len("Hello")), respHead.ContentLength)
389 require.Equal(t, "auto", respHead.Header.Get("X-Test"))
390
391 body, err := io.ReadAll(respHead.Body)
392 require.NoError(t, err)
393 require.Empty(t, body)
394
395 respGet, err := app.Test(httptest.NewRequest(MethodGet, "/", http.NoBody))
396 require.NoError(t, err)
397 registerCleanup(t, respGet.Body)
398 require.Equal(t, StatusOK, respGet.StatusCode)
399 require.Equal(t, int64(len("Hello")), respGet.ContentLength)
400 data, err := io.ReadAll(respGet.Body)
401 require.NoError(t, err)
402 require.Equal(t, "Hello", string(data))
403 },

Callers

nothing calls this directly

Calls 14

TestMethod · 0.80
startupProcessMethod · 0.80
GetRoutesMethod · 0.80
NewFunction · 0.70
CloseMethod · 0.65
GetMethod · 0.65
SetMethod · 0.65
SendStringMethod · 0.65
HeadMethod · 0.65
SendStatusMethod · 0.65
GroupMethod · 0.65
ParamsMethod · 0.65

Tested by

no test coverage detected