UNPKG

limiter

Version:

A generic rate limiter for the web and node.js. Useful for API clients, web crawling, or other tasks that need to be throttled

22 lines (19 loc) 1.08 kB
import { RateLimiter } from "./RateLimiter.js"; import { Interval } from "./TokenBucket.js"; describe("RateLimiter", () => { describe("interval validation", () => { it("invalid interval", () => { const junkInterval = ("junk" as unknown) as Interval; expect(() => new RateLimiter({ tokensPerInterval: 1, interval: junkInterval })).toThrow(); }); it("valid intervals", () => { expect(() => new RateLimiter({ tokensPerInterval: 1, interval: "sec" })).not.toThrow(); expect(() => new RateLimiter({ tokensPerInterval: 1, interval: "second" })).not.toThrow(); expect(() => new RateLimiter({ tokensPerInterval: 1, interval: "min" })).not.toThrow(); expect(() => new RateLimiter({ tokensPerInterval: 1, interval: "minute" })).not.toThrow(); expect(() => new RateLimiter({ tokensPerInterval: 1, interval: "hr" })).not.toThrow(); expect(() => new RateLimiter({ tokensPerInterval: 1, interval: "hour" })).not.toThrow(); expect(() => new RateLimiter({ tokensPerInterval: 1, interval: "day" })).not.toThrow(); }); }); });