Test_Session_ChainedExtractors() — fiber Function Reference
Architecture documentation for the Test_Session_ChainedExtractors() function in session_test.go from the fiber codebase.
Entity Profile
Dependency Diagram
graph TD 6a0d766b_35dc_9016_e131_a60e9a778031["Test_Session_ChainedExtractors()"] 397e6e82_749b_4ef2_9365_02be671c59f7["session_test.go"] 6a0d766b_35dc_9016_e131_a60e9a778031 -->|defined in| 397e6e82_749b_4ef2_9365_02be671c59f7 style 6a0d766b_35dc_9016_e131_a60e9a778031 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
middleware/session/session_test.go lines 570–703
func Test_Session_ChainedExtractors(t *testing.T) {
t.Parallel()
t.Run("cookie and header chain", func(t *testing.T) {
t.Parallel()
// session store with chained extractors
store := NewStore(Config{
Extractor: extractors.Chain(extractors.FromCookie("session_id"), extractors.FromHeader("x-session-id")),
})
// fiber instance
app := fiber.New()
// fiber context
ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
defer app.ReleaseCtx(ctx)
// get session
sess, err := store.Get(ctx)
require.NoError(t, err)
// set value
sess.Set("name", "john")
// save session
err = sess.Save()
require.NoError(t, err)
// verify both cookie and header are set
cookie := ctx.Response().Header.PeekCookie("session_id")
require.NotNil(t, cookie)
require.Contains(t, string(cookie), sess.ID())
header := string(ctx.Response().Header.Peek("x-session-id"))
require.Equal(t, sess.ID(), header)
sess.Release()
})
t.Run("header and cookie chain", func(t *testing.T) {
t.Parallel()
// session store with chained extractors (different order)
store := NewStore(Config{
Extractor: extractors.Chain(extractors.FromHeader("x-session-id"), extractors.FromCookie("session_id")),
})
// fiber instance
app := fiber.New()
// fiber context
ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
defer app.ReleaseCtx(ctx)
// get session
sess, err := store.Get(ctx)
require.NoError(t, err)
// set value
sess.Set("name", "john")
// save session
err = sess.Save()
require.NoError(t, err)
// verify both header and cookie are set
header := string(ctx.Response().Header.Peek("x-session-id"))
require.Equal(t, sess.ID(), header)
cookie := ctx.Response().Header.PeekCookie("session_id")
require.NotNil(t, cookie)
require.Contains(t, string(cookie), sess.ID())
sess.Release()
})
t.Run("only SourceOther extractors - no response setting", func(t *testing.T) {
t.Parallel()
// session store with only query/form extractors
store := NewStore(Config{
Extractor: extractors.Chain(extractors.FromQuery("session_id"), extractors.FromForm("session_id")),
})
// fiber instance
app := fiber.New()
// fiber context
ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
defer app.ReleaseCtx(ctx)
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does Test_Session_ChainedExtractors() do?
Test_Session_ChainedExtractors() is a function in the fiber codebase, defined in middleware/session/session_test.go.
Where is Test_Session_ChainedExtractors() defined?
Test_Session_ChainedExtractors() is defined in middleware/session/session_test.go at line 570.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free