MCPcopy
hub / github.com/pocketbase/pocketbase / TestOTPClearOnTokenKeyChange

Function TestOTPClearOnTokenKeyChange

core/otp_model_test.go:304–363  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

302}
303
304func TestOTPClearOnTokenKeyChange(t *testing.T) {
305 t.Parallel()
306
307 app, _ := tests.NewTestApp()
308 defer app.Cleanup()
309
310 user1, err := app.FindAuthRecordByEmail("users", "test@example.com")
311 if err != nil {
312 t.Fatal(err)
313 }
314
315 user2, err := app.FindAuthRecordByEmail("users", "test2@example.com")
316 if err != nil {
317 t.Fatal(err)
318 }
319
320 otpsToCreate := map[*core.Record]int{
321 user1: 3,
322 user2: 2,
323 }
324 for user, total := range otpsToCreate {
325 for range total {
326 otp := core.NewOTP(app)
327 otp.SetCollectionRef(user.Collection().Id)
328 otp.SetRecordRef(user.Id)
329 otp.SetPassword("123456")
330 if err := app.Save(otp); err != nil {
331 t.Fatal(err)
332 }
333 }
334 }
335
336 // update both users
337 err = app.Save(user1)
338 if err != nil {
339 t.Fatal(err)
340 }
341
342 user2.RefreshTokenKey()
343 err = app.Save(user2)
344 if err != nil {
345 t.Fatal(err)
346 }
347
348 expectedOTPs := map[*core.Record]int{
349 user1: 3,
350 user2: 0,
351 }
352
353 for user, expected := range expectedOTPs {
354 otps, err := app.FindAllOTPsByRecord(user)
355 if err != nil {
356 t.Fatal(err)
357 }
358
359 if len(otps) != expected {
360 t.Fatalf("Expected %d OTPs, got %d", expected, len(otps))
361 }

Callers

nothing calls this directly

Calls 11

CleanupMethod · 0.95
SetCollectionRefMethod · 0.95
SetRecordRefMethod · 0.95
NewTestAppFunction · 0.92
NewOTPFunction · 0.92
CollectionMethod · 0.80
SetPasswordMethod · 0.80
RefreshTokenKeyMethod · 0.80
FindAuthRecordByEmailMethod · 0.65
SaveMethod · 0.65
FindAllOTPsByRecordMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…