Files
deploy/server/session/ratelimiter_test.go
2025-05-21 16:25:32 +00:00

33 lines
690 B
Go

package session
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
utilio "github.com/argoproj/argo-cd/v3/util/io"
"github.com/argoproj/argo-cd/v3/util/session"
)
func TestRateLimiter(t *testing.T) {
var closers []utilio.Closer
limiter := NewLoginRateLimiter(10)
for i := 0; i < 10; i++ {
closer, err := limiter()
require.NoError(t, err)
closers = append(closers, closer)
}
// 11 request should fail
_, err := limiter()
assert.Equal(t, err, session.InvalidLoginErr)
if !assert.Len(t, closers, 10) {
return
}
// complete one request
require.NoError(t, closers[0].Close())
_, err = limiter()
require.NoError(t, err)
}