Home / Function/ Test_Session_Multiple_GetSession_Calls() — fiber Function Reference

Test_Session_Multiple_GetSession_Calls() — fiber Function Reference

Architecture documentation for the Test_Session_Multiple_GetSession_Calls() function in session_test.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  fc31d74f_a143_ced4_b437_765a33556bd9["Test_Session_Multiple_GetSession_Calls()"]
  397e6e82_749b_4ef2_9365_02be671c59f7["session_test.go"]
  fc31d74f_a143_ced4_b437_765a33556bd9 -->|defined in| 397e6e82_749b_4ef2_9365_02be671c59f7
  style fc31d74f_a143_ced4_b437_765a33556bd9 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/session/session_test.go lines 1683–1729

func Test_Session_Multiple_GetSession_Calls(t *testing.T) {
	t.Parallel()

	store := NewStore()
	app := fiber.New()

	// Create initial session
	ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
	sess1, err := store.Get(ctx)
	require.NoError(t, err)
	require.True(t, sess1.Fresh())
	sessionID := sess1.ID()
	sess1.Set("test_key", "test_value")
	require.NoError(t, sess1.Save())
	sess1.Release()
	app.ReleaseCtx(ctx)

	// New request with existing session
	ctx2 := app.AcquireCtx(&fasthttp.RequestCtx{})
	ctx2.Request().Header.SetCookie("session_id", sessionID)

	// First getSession() call - loads from storage
	sess2, err := store.getSession(ctx2)
	require.NoError(t, err)
	require.False(t, sess2.Fresh(), "First call: existing session should not be fresh")
	require.Equal(t, sessionID, sess2.ID())
	require.Equal(t, "test_value", sess2.Get("test_key"))

	// Second getSession() call - ID now in context locals
	// This is where the bug would manifest before the fix
	sess3, err := store.getSession(ctx2)
	require.NoError(t, err)
	require.False(t, sess3.Fresh(), "Second call: session should STILL not be fresh (bug fix verification)")
	require.Equal(t, sessionID, sess3.ID())
	require.Equal(t, "test_value", sess3.Get("test_key"))

	// Third call to ensure consistency
	sess4, err := store.getSession(ctx2)
	require.NoError(t, err)
	require.False(t, sess4.Fresh(), "Third call: session should remain not fresh")
	require.Equal(t, sessionID, sess4.ID())

	sess2.Release()
	sess3.Release()
	sess4.Release()
	app.ReleaseCtx(ctx2)
}

Subdomains

Frequently Asked Questions

What does Test_Session_Multiple_GetSession_Calls() do?
Test_Session_Multiple_GetSession_Calls() is a function in the fiber codebase, defined in middleware/session/session_test.go.
Where is Test_Session_Multiple_GetSession_Calls() defined?
Test_Session_Multiple_GetSession_Calls() is defined in middleware/session/session_test.go at line 1683.

Analyze Your Own Codebase

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

Try Supermodel Free