mirror of https://github.com/openclaw/openclaw.git
test: tighten fixed window limiter coverage
This commit is contained in:
parent
8f86cb92ac
commit
5dd9389c25
|
|
@ -18,6 +18,35 @@ describe("fixed-window rate limiter", () => {
|
||||||
expect(limiter.consume()).toMatchObject({ allowed: true, remaining: 1 });
|
expect(limiter.consume()).toMatchObject({ allowed: true, remaining: 1 });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("clamps maxRequests and windowMs to at least one", () => {
|
||||||
|
let nowMs = 100;
|
||||||
|
const limiter = createFixedWindowRateLimiter({
|
||||||
|
maxRequests: 0.2,
|
||||||
|
windowMs: 0.4,
|
||||||
|
now: () => nowMs,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(limiter.consume()).toMatchObject({ allowed: true, remaining: 0, retryAfterMs: 0 });
|
||||||
|
expect(limiter.consume()).toMatchObject({ allowed: false, remaining: 0, retryAfterMs: 1 });
|
||||||
|
|
||||||
|
nowMs += 1;
|
||||||
|
expect(limiter.consume()).toMatchObject({ allowed: true, remaining: 0 });
|
||||||
|
});
|
||||||
|
|
||||||
|
it("reports the remaining retry window after later blocked attempts", () => {
|
||||||
|
let nowMs = 1_000;
|
||||||
|
const limiter = createFixedWindowRateLimiter({
|
||||||
|
maxRequests: 1,
|
||||||
|
windowMs: 1_000,
|
||||||
|
now: () => nowMs,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(limiter.consume()).toMatchObject({ allowed: true, remaining: 0 });
|
||||||
|
|
||||||
|
nowMs += 250;
|
||||||
|
expect(limiter.consume()).toMatchObject({ allowed: false, retryAfterMs: 750 });
|
||||||
|
});
|
||||||
|
|
||||||
it("supports explicit reset", () => {
|
it("supports explicit reset", () => {
|
||||||
const limiter = createFixedWindowRateLimiter({
|
const limiter = createFixedWindowRateLimiter({
|
||||||
maxRequests: 1,
|
maxRequests: 1,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue