testing/testing_rate_limiter.ts view source
import {TestingRateLimiter} from '@fuzdev/fuz_app/testing/testing_rate_limiter.js'; RateLimiter plus bucket tracking. Every check/record call adds
its key to #seen_keys; reset removes it; reset_all clears every
tracked bucket. Drop-in replacement anywhere a RateLimiter is
expected — the type is nominally compatible via subclassing.
inheritance
check
type (key: string, now?: number | undefined): RateLimitResult
key
stringnow?
number | undefinedrecord
type (key: string, now?: number | undefined): RateLimitResult
key
stringnow?
number | undefinedreset
type (key: string): void
key
stringvoidreset_all
Clear every bucket this limiter has been asked about. Idempotent;
safe to call before any check/record activity. Designed to be invoked
from a _testing_reset handler's reset_state callback so the test
binary's rate-limit buckets don't leak across test cases.
type (): void
voidtracked_keys
Snapshot of every bucket key this limiter has observed via
check/record. Doesn't reflect post-cleanup pruning — keys that
cleanup() removed remain in tracked_keys until reset/reset_all
runs (or the limiter is disposed). Useful for assertions like
"limiter saw exactly N IPs" in tests.
type ReadonlySet<string>