Test_Extractor_Chain() — fiber Function Reference
Architecture documentation for the Test_Extractor_Chain() function in extractors_test.go from the fiber codebase.
Entity Profile
Dependency Diagram
graph TD 1d75b60c_bb52_1c70_e123_c30a74663fcd["Test_Extractor_Chain()"] cf5e296e_8db5_6f84_b05a_9c0cac6f83e7["extractors_test.go"] 1d75b60c_bb52_1c70_e123_c30a74663fcd -->|defined in| cf5e296e_8db5_6f84_b05a_9c0cac6f83e7 style 1d75b60c_bb52_1c70_e123_c30a74663fcd fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
extractors/extractors_test.go lines 149–217
func Test_Extractor_Chain(t *testing.T) {
t.Parallel()
t.Run("no_extractors", func(t *testing.T) {
t.Parallel()
app := fiber.New()
ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
t.Cleanup(func() { app.ReleaseCtx(ctx) })
token, err := Chain().Extract(ctx)
require.Empty(t, token)
require.ErrorIs(t, err, ErrNotFound)
})
t.Run("first_extractor_succeeds", func(t *testing.T) {
t.Parallel()
app := fiber.New()
ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
t.Cleanup(func() { app.ReleaseCtx(ctx) })
ctx.Request().Header.Set("X-Token", "token_from_header")
ctx.Request().SetRequestURI("/?token=token_from_query")
token, err := Chain(FromHeader("X-Token"), FromQuery("token")).Extract(ctx)
require.NoError(t, err)
require.Equal(t, "token_from_header", token)
})
t.Run("second_extractor_succeeds", func(t *testing.T) {
t.Parallel()
app := fiber.New()
ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
t.Cleanup(func() { app.ReleaseCtx(ctx) })
ctx.Request().SetRequestURI("/?token=token_from_query")
token, err := Chain(FromHeader("X-Token"), FromQuery("token")).Extract(ctx)
require.NoError(t, err)
require.Equal(t, "token_from_query", token)
})
t.Run("all_extractors_fail", func(t *testing.T) {
t.Parallel()
app := fiber.New()
ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
t.Cleanup(func() { app.ReleaseCtx(ctx) })
token, err := Chain(FromHeader("X-Token"), FromQuery("token")).Extract(ctx)
require.Empty(t, token)
require.ErrorIs(t, err, ErrNotFound)
})
t.Run("empty_extractor_returns_not_found", func(t *testing.T) {
t.Parallel()
app := fiber.New()
ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
t.Cleanup(func() { app.ReleaseCtx(ctx) })
// This extractor will return "", nil
dummyExtractor := Extractor{
Extract: func(_ fiber.Ctx) (string, error) {
return "", nil
},
Source: SourceCustom,
Key: "token",
}
token, err := Chain(dummyExtractor).Extract(ctx)
require.Empty(t, token)
require.ErrorIs(t, err, ErrNotFound)
})
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does Test_Extractor_Chain() do?
Test_Extractor_Chain() is a function in the fiber codebase, defined in extractors/extractors_test.go.
Where is Test_Extractor_Chain() defined?
Test_Extractor_Chain() is defined in extractors/extractors_test.go at line 149.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free