fix(06-12): fail closed on invalid limiter definitions

This commit is contained in:
Jakub Zych
2026-09-21 19:42:41 +02:00
parent a50e09ba34
commit 4ad2ad29f2
2 changed files with 38 additions and 6 deletions

View File

@@ -389,3 +389,17 @@ func stackThrottle(lim *FixedWindowLimiter, next http.Handler, names ...string)
}
var _ pact.Router = (*Router)(nil)
func TestRegisterBucketRejectsInvalidDefinitions(t *testing.T) {
l := NewFixedWindowLimiter(NewMemoryStore(time.Minute), nil)
key := func(*http.Request) string { return "k" }
if err := l.RegisterBucket("p", "n", Bucket{Max: 1, Decay: 0, Key: key}); err == nil {
t.Fatal("zero decay accepted")
}
if err := l.RegisterBucket("p", "n", Bucket{Max: 1, Decay: time.Minute}); err == nil {
t.Fatal("nil key accepted")
}
if err := l.ValidateThrottle("1,9223372036854775807"); err == nil {
t.Fatal("overflowing minutes accepted")
}
}