Add Public API
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import { createIpRateLimiter } from '../src/rateLimits.js';
|
||||
|
||||
test('limits requests per IP within the configured window', () => {
|
||||
const limiter = createIpRateLimiter({
|
||||
windowMs: 60_000,
|
||||
max: 2,
|
||||
message: 'Too many reads.'
|
||||
});
|
||||
|
||||
assert.equal(limiter.check('203.0.113.8').remaining, 1);
|
||||
assert.equal(limiter.check('203.0.113.8').remaining, 0);
|
||||
assert.equal(limiter.check('203.0.113.9').remaining, 1);
|
||||
|
||||
assert.throws(
|
||||
() => limiter.check('203.0.113.8'),
|
||||
(error) => error.statusCode === 429 && error.message === 'Too many reads.'
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user