github.com/argoproj/argo-cd/v3@v3.2.1/server/session/ratelimiter_test.go (about) 1 package session 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "github.com/stretchr/testify/require" 8 9 utilio "github.com/argoproj/argo-cd/v3/util/io" 10 "github.com/argoproj/argo-cd/v3/util/session" 11 ) 12 13 func TestRateLimiter(t *testing.T) { 14 var closers []utilio.Closer 15 limiter := NewLoginRateLimiter(10) 16 for i := 0; i < 10; i++ { 17 closer, err := limiter() 18 require.NoError(t, err) 19 closers = append(closers, closer) 20 } 21 // 11 request should fail 22 _, err := limiter() 23 assert.Equal(t, err, session.InvalidLoginErr) 24 25 if !assert.Len(t, closers, 10) { 26 return 27 } 28 // complete one request 29 require.NoError(t, closers[0].Close()) 30 _, err = limiter() 31 require.NoError(t, err) 32 }