package kubernetes import ( "testing" "time" "github.com/coreos/dex/storage" ) func muster(t *testing.T) func(err error) { return func(err error) { if err != nil { t.Fatal(err) } } } func TestGCAuthRequests(t *testing.T) { cli := loadClient(t) must := muster(t) now := time.Now() cli.now = func() time.Time { return now } expiredID := storage.NewID() goodID := storage.NewID() must(cli.CreateAuthRequest(storage.AuthRequest{ ID: expiredID, Expiry: now.Add(-time.Second), })) must(cli.CreateAuthRequest(storage.AuthRequest{ ID: goodID, Expiry: now.Add(time.Second), })) handleErr := func(err error) { t.Error(err.Error()) } cli.gcAuthRequests(handleErr) if _, err := cli.GetAuthRequest(goodID); err != nil { t.Errorf("failed to get good auth ID: %v", err) } _, err := cli.GetAuthRequest(expiredID) switch { case err == nil: t.Errorf("gc did not remove expired auth request") case err == storage.ErrNotFound: default: t.Errorf("expected storage.ErrNotFound, got %v", err) } } func TestGCAuthCodes(t *testing.T) { cli := loadClient(t) must := muster(t) now := time.Now() cli.now = func() time.Time { return now } expiredID := storage.NewID() goodID := storage.NewID() must(cli.CreateAuthCode(storage.AuthCode{ ID: expiredID, Expiry: now.Add(-time.Second), })) must(cli.CreateAuthCode(storage.AuthCode{ ID: goodID, Expiry: now.Add(time.Second), })) handleErr := func(err error) { t.Error(err.Error()) } cli.gcAuthCodes(handleErr) if _, err := cli.GetAuthCode(goodID); err != nil { t.Errorf("failed to get good auth ID: %v", err) } _, err := cli.GetAuthCode(expiredID) switch { case err == nil: t.Errorf("gc did not remove expired auth request") case err == storage.ErrNotFound: default: t.Errorf("expected storage.ErrNotFound, got %v", err) } }