18 lines
698 B
JavaScript
18 lines
698 B
JavaScript
const { test } = require('node:test');
|
|
const assert = require('node:assert');
|
|
const { hit, _reset } = require('./ratelimit');
|
|
|
|
test('erlaubt bis zum Limit, blockt danach', () => {
|
|
_reset();
|
|
assert.strictEqual(hit('a@x.de', 3, 15), true);
|
|
assert.strictEqual(hit('a@x.de', 3, 15), true);
|
|
assert.strictEqual(hit('a@x.de', 3, 15), true);
|
|
assert.strictEqual(hit('a@x.de', 3, 15), false, '4. Anfrage geblockt');
|
|
});
|
|
|
|
test('verschiedene Keys sind unabhängig (E-Mail vs IP)', () => {
|
|
_reset();
|
|
assert.strictEqual(hit('email:a@x.de', 1, 15), true);
|
|
assert.strictEqual(hit('email:a@x.de', 1, 15), false);
|
|
assert.strictEqual(hit('ip:1.2.3.4', 100, 15), true, 'anderer Key unberührt');
|
|
});
|