mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-20 04:42:33 +02:00
27 lines
561 B
Go
27 lines
561 B
Go
package middleware
|
|
|
|
import (
|
|
"net/http"
|
|
"testing"
|
|
|
|
. "github.com/yusing/go-proxy/internal/utils/testing"
|
|
)
|
|
|
|
func TestRateLimit(t *testing.T) {
|
|
opts := OptionsRaw{
|
|
"average": "10",
|
|
"burst": "10",
|
|
"period": "1s",
|
|
}
|
|
|
|
rl, err := NewRateLimiter(opts)
|
|
ExpectNoError(t, err)
|
|
for range 10 {
|
|
result, err := newMiddlewareTest(rl, nil)
|
|
ExpectNoError(t, err)
|
|
ExpectEqual(t, result.ResponseStatus, http.StatusOK)
|
|
}
|
|
result, err := newMiddlewareTest(rl, nil)
|
|
ExpectNoError(t, err)
|
|
ExpectEqual(t, result.ResponseStatus, http.StatusTooManyRequests)
|
|
}
|