MCPcopy
hub / github.com/gofiber/fiber / Test_Store_GetByID

Function Test_Store_GetByID

middleware/session/store_test.go:166–227  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

164}
165
166func Test_Store_GetByID(t *testing.T) {
167 t.Parallel()
168 // Create a new store
169 store := NewStore()
170
171 t.Run("empty session ID", func(t *testing.T) {
172 t.Parallel()
173 sess, err := store.GetByID(context.Background(), "")
174 require.Error(t, err)
175 require.Nil(t, sess)
176 require.Equal(t, ErrEmptySessionID, err)
177 })
178
179 t.Run("nonexistent session ID", func(t *testing.T) {
180 t.Parallel()
181 sess, err := store.GetByID(context.Background(), "nonexistent-session-id")
182 require.Error(t, err)
183 require.Nil(t, sess)
184 require.Equal(t, ErrSessionIDNotFoundInStore, err)
185 })
186
187 t.Run("valid session ID", func(t *testing.T) {
188 t.Parallel()
189 app := fiber.New()
190 // Create a new session
191 ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
192 session, err := store.Get(ctx)
193 defer session.Release()
194 defer app.ReleaseCtx(ctx)
195 require.NoError(t, err)
196
197 // Save the session ID
198 sessionID := session.ID()
199
200 // Save the session
201 err = session.Save()
202 require.NoError(t, err)
203
204 // Retrieve the session by ID
205 retrievedSession, err := store.GetByID(context.Background(), sessionID)
206 require.NoError(t, err)
207 require.NotNil(t, retrievedSession)
208 require.Equal(t, sessionID, retrievedSession.ID())
209
210 // Call Save on the retrieved session
211 retrievedSession.Set("key", "value")
212 err = retrievedSession.Save()
213 require.NoError(t, err)
214
215 // Call Other Session methods
216 require.Equal(t, "value", retrievedSession.Get("key"))
217 require.False(t, retrievedSession.Fresh())
218
219 require.NoError(t, retrievedSession.Reset())
220 require.NoError(t, retrievedSession.Destroy())
221 require.IsType(t, []any{}, retrievedSession.Keys())
222 require.NoError(t, retrievedSession.Regenerate())
223 require.NotPanics(t, func() {

Callers

nothing calls this directly

Calls 15

GetByIDMethod · 0.95
GetMethod · 0.95
NewStoreFunction · 0.85
AcquireCtxMethod · 0.80
ReleaseCtxMethod · 0.80
ErrorMethod · 0.65
NewMethod · 0.65
SetMethod · 0.65
GetMethod · 0.65
FreshMethod · 0.65
ResetMethod · 0.65
ReleaseMethod · 0.45

Tested by

no test coverage detected