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
21 lines • 1.35 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const RateLimiter_js_1 = require("./RateLimiter.js");
describe("RateLimiter", () => {
describe("interval validation", () => {
it("invalid interval", () => {
const junkInterval = "junk";
expect(() => new RateLimiter_js_1.RateLimiter({ tokensPerInterval: 1, interval: junkInterval })).toThrow();
});
it("valid intervals", () => {
expect(() => new RateLimiter_js_1.RateLimiter({ tokensPerInterval: 1, interval: "sec" })).not.toThrow();
expect(() => new RateLimiter_js_1.RateLimiter({ tokensPerInterval: 1, interval: "second" })).not.toThrow();
expect(() => new RateLimiter_js_1.RateLimiter({ tokensPerInterval: 1, interval: "min" })).not.toThrow();
expect(() => new RateLimiter_js_1.RateLimiter({ tokensPerInterval: 1, interval: "minute" })).not.toThrow();
expect(() => new RateLimiter_js_1.RateLimiter({ tokensPerInterval: 1, interval: "hr" })).not.toThrow();
expect(() => new RateLimiter_js_1.RateLimiter({ tokensPerInterval: 1, interval: "hour" })).not.toThrow();
expect(() => new RateLimiter_js_1.RateLimiter({ tokensPerInterval: 1, interval: "day" })).not.toThrow();
});
});
});
//# sourceMappingURL=RateLimiter.test.js.map
;