MCPcopy Index your code
hub / github.com/coder/coder / TestDeleteExpiredAPIKeys

Function TestDeleteExpiredAPIKeys

coderd/database/querier_test.go:10206–10285  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

10204}
10205
10206func TestDeleteExpiredAPIKeys(t *testing.T) {
10207 t.Parallel()
10208 db, _ := dbtestutil.NewDB(t)
10209
10210 // Constant time for testing
10211 now := time.Date(2025, 11, 20, 12, 0, 0, 0, time.UTC)
10212 expiredBefore := now.Add(-time.Hour) // Anything before this is expired
10213
10214 ctx := testutil.Context(t, testutil.WaitLong)
10215
10216 user := dbgen.User(t, db, database.User{})
10217
10218 expiredTimes := []time.Time{
10219 expiredBefore.Add(-time.Hour * 24 * 365),
10220 expiredBefore.Add(-time.Hour * 24),
10221 expiredBefore.Add(-time.Hour),
10222 expiredBefore.Add(-time.Minute),
10223 expiredBefore.Add(-time.Second),
10224 }
10225 for _, exp := range expiredTimes {
10226 // Expired api keys
10227 dbgen.APIKey(t, db, database.APIKey{UserID: user.ID, ExpiresAt: exp})
10228 }
10229
10230 unexpiredTimes := []time.Time{
10231 expiredBefore.Add(time.Hour * 24 * 365),
10232 expiredBefore.Add(time.Hour * 24),
10233 expiredBefore.Add(time.Hour),
10234 expiredBefore.Add(time.Minute),
10235 expiredBefore.Add(time.Second),
10236 }
10237 for _, unexp := range unexpiredTimes {
10238 // Unexpired api keys
10239 dbgen.APIKey(t, db, database.APIKey{UserID: user.ID, ExpiresAt: unexp})
10240 }
10241
10242 // All keys are present before deletion
10243 keys, err := db.GetAPIKeysByUserID(ctx, database.GetAPIKeysByUserIDParams{
10244 LoginType: user.LoginType,
10245 UserID: user.ID,
10246 IncludeExpired: true,
10247 })
10248 require.NoError(t, err)
10249 require.Len(t, keys, len(expiredTimes)+len(unexpiredTimes))
10250
10251 // Delete expired keys
10252 // First verify the limit works by deleting one at a time
10253 deletedCount, err := db.DeleteExpiredAPIKeys(ctx, database.DeleteExpiredAPIKeysParams{
10254 Before: expiredBefore,
10255 LimitCount: 1,
10256 })
10257 require.NoError(t, err)
10258 require.Equal(t, int64(1), deletedCount)
10259
10260 // Ensure it was deleted
10261 remaining, err := db.GetAPIKeysByUserID(ctx, database.GetAPIKeysByUserIDParams{
10262 LoginType: user.LoginType,
10263 UserID: user.ID,

Callers

nothing calls this directly

Calls 9

NewDBFunction · 0.92
ContextFunction · 0.92
UserFunction · 0.92
APIKeyFunction · 0.92
AddMethod · 0.65
GetAPIKeysByUserIDMethod · 0.65
DeleteExpiredAPIKeysMethod · 0.65
LenMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected