Home / File/ recover_test.go — fiber Source File

recover_test.go — fiber Source File

Architecture documentation for recover_test.go, a go file in the fiber codebase. 1 imports, 0 dependents.

File go FiberCore Adapters 1 imports 3 functions

Entity Profile

Dependency Diagram

graph LR
  7c11c55a_4463_4f98_bd3c_1c6d6baff2cf["recover_test.go"]
  dbea2ac8_9b7c_9118_714a_b9e222cbb2e2["http"]
  7c11c55a_4463_4f98_bd3c_1c6d6baff2cf --> dbea2ac8_9b7c_9118_714a_b9e222cbb2e2
  style 7c11c55a_4463_4f98_bd3c_1c6d6baff2cf fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

package recover //nolint:predeclared // TODO: Rename to some non-builtin

import (
	"net/http"
	"net/http/httptest"
	"testing"

	"github.com/gofiber/fiber/v3"
	"github.com/stretchr/testify/require"
)

// go test -run Test_Recover
func Test_Recover(t *testing.T) {
	t.Parallel()
	app := fiber.New(fiber.Config{
		ErrorHandler: func(c fiber.Ctx, err error) error {
			require.Equal(t, "Hi, I'm an error!", err.Error())
			return c.SendStatus(fiber.StatusTeapot)
		},
	})

	app.Use(New())

	app.Get("/panic", func(_ fiber.Ctx) error {
		panic("Hi, I'm an error!")
	})

	resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/panic", http.NoBody))
	require.NoError(t, err)
	require.Equal(t, fiber.StatusTeapot, resp.StatusCode)
}

// go test -run Test_Recover_Next
func Test_Recover_Next(t *testing.T) {
	t.Parallel()
	app := fiber.New()
	app.Use(New(Config{
		Next: func(_ fiber.Ctx) bool {
			return true
		},
	}))

	resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/", http.NoBody))
	require.NoError(t, err)
	require.Equal(t, fiber.StatusNotFound, resp.StatusCode)
}

func Test_Recover_EnableStackTrace(t *testing.T) {
	t.Parallel()
	app := fiber.New()
	app.Use(New(Config{
		EnableStackTrace: true,
	}))

	app.Get("/panic", func(_ fiber.Ctx) error {
		panic("Hi, I'm an error!")
	})

	resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/panic", http.NoBody))
	require.NoError(t, err)
	require.Equal(t, fiber.StatusInternalServerError, resp.StatusCode)
}

Domain

Subdomains

Dependencies

  • http

Frequently Asked Questions

What does recover_test.go do?
recover_test.go is a source file in the fiber codebase, written in go. It belongs to the FiberCore domain, Adapters subdomain.
What functions are defined in recover_test.go?
recover_test.go defines 3 function(s): Test_Recover, Test_Recover_EnableStackTrace, Test_Recover_Next.
What does recover_test.go depend on?
recover_test.go imports 1 module(s): http.
Where is recover_test.go in the architecture?
recover_test.go is located at middleware/recover/recover_test.go (domain: FiberCore, subdomain: Adapters, directory: middleware/recover).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free