MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / TestCreateOneTimeSession

Function TestCreateOneTimeSession

auth/session_test.go:370–405  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

368}
369
370func TestCreateOneTimeSession(t *testing.T) {
371 ctx := base.TestCtx(t)
372 testBucket := base.GetTestBucket(t)
373 defer testBucket.Close(ctx)
374 dataStore := testBucket.GetSingleDataStore()
375 auth := NewTestAuthenticator(t, dataStore, nil, DefaultAuthenticatorOptions(ctx))
376 const username = "Alice"
377 user, err := auth.NewUser(username, "password", base.Set{})
378 require.NoError(t, err)
379 require.NoError(t, auth.Save(user))
380
381 oneTime := true
382 session, err := auth.CreateSession(ctx, user, 2*time.Hour, oneTime)
383 require.NoError(t, err)
384
385 session, user, err = auth.GetSession(session.ID)
386 require.NoError(t, err)
387 require.Equal(t, username, session.Username)
388 require.Equal(t, username, user.Name())
389
390 // make sure this can be retrieved again if not through AuthenticateOneTimeSession
391 session, user, err = auth.GetSession(session.ID)
392 require.NoError(t, err)
393 require.Equal(t, username, session.Username)
394 require.Equal(t, username, user.Name())
395
396 // now test AuthenticateOneTimeSession deletes it
397 user, err = auth.AuthenticateOneTimeSession(ctx, session.ID)
398 require.NoError(t, err)
399 require.Equal(t, username, user.Name())
400
401 // make sure session is deleted
402 session, _, err = auth.GetSession(session.ID)
403 require.Nil(t, session)
404 base.RequireDocNotFoundError(t, err)
405}

Callers

nothing calls this directly

Calls 14

TestCtxFunction · 0.92
GetTestBucketFunction · 0.92
RequireDocNotFoundErrorFunction · 0.92
NewTestAuthenticatorFunction · 0.85
NewUserMethod · 0.80
SaveMethod · 0.80
CreateSessionMethod · 0.80
GetSessionMethod · 0.80
CloseMethod · 0.65
NameMethod · 0.65

Tested by

no test coverage detected