Test_Session_Save_AbsoluteTimeout() — fiber Function Reference
Architecture documentation for the Test_Session_Save_AbsoluteTimeout() function in session_test.go from the fiber codebase.
Entity Profile
Dependency Diagram
graph TD 3fef8efc_d675_d026_3afc_7ca2094470b6["Test_Session_Save_AbsoluteTimeout()"] 397e6e82_749b_4ef2_9365_02be671c59f7["session_test.go"] 3fef8efc_d675_d026_3afc_7ca2094470b6 -->|defined in| 397e6e82_749b_4ef2_9365_02be671c59f7 style 3fef8efc_d675_d026_3afc_7ca2094470b6 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
middleware/session/session_test.go lines 768–850
func Test_Session_Save_AbsoluteTimeout(t *testing.T) {
t.Parallel()
t.Run("save to cookie", func(t *testing.T) {
t.Parallel()
const absoluteTimeout = 2 * time.Second // extra headroom to avoid flakiness under -race
// session store
store := NewStore(Config{
IdleTimeout: absoluteTimeout,
AbsoluteTimeout: absoluteTimeout,
})
// force change to IdleTimeout
store.IdleTimeout = 10 * time.Second
// 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")
token := sess.ID()
// save session
err = sess.Save()
require.NoError(t, err)
sess.Release()
app.ReleaseCtx(ctx)
ctx = app.AcquireCtx(&fasthttp.RequestCtx{})
// here you need to get the old session yet
ctx.Request().Header.SetCookie("session_id", token)
sess, err = store.Get(ctx)
require.NoError(t, err)
require.Equal(t, "john", sess.Get("name"))
// just to make sure the session has been expired
time.Sleep(absoluteTimeout + (200 * time.Millisecond))
sess.Release()
app.ReleaseCtx(ctx)
ctx = app.AcquireCtx(&fasthttp.RequestCtx{})
// here you should get a new session
ctx.Request().Header.SetCookie("session_id", token)
sess, err = store.Get(ctx)
require.NoError(t, err)
require.Nil(t, sess.Get("name"))
require.NotEqual(t, sess.ID(), token)
require.True(t, sess.Fresh())
require.IsType(t, time.Time{}, sess.Get(absExpirationKey))
token = sess.ID()
sess.Set("name", "john")
// save session
err = sess.Save()
require.NoError(t, err)
sess.Release()
app.ReleaseCtx(ctx)
// just to make sure the session has been expired
time.Sleep(absoluteTimeout + (200 * time.Millisecond))
// try to get expired session by id
sess, err = store.GetByID(ctx, token)
require.Error(t, err)
require.ErrorIs(t, err, ErrSessionIDNotFoundInStore)
require.Nil(t, sess)
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does Test_Session_Save_AbsoluteTimeout() do?
Test_Session_Save_AbsoluteTimeout() is a function in the fiber codebase, defined in middleware/session/session_test.go.
Where is Test_Session_Save_AbsoluteTimeout() defined?
Test_Session_Save_AbsoluteTimeout() is defined in middleware/session/session_test.go at line 768.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free