feature: cloudcmd: ratelimit: X-Forwarded-For (#437)

This commit is contained in:
coderiaser 2026-05-26 22:06:44 +03:00
parent cad5e0f44e
commit 40ecef5ec4
7 changed files with 61 additions and 31 deletions

44
test-e2e/ratelimit.js Normal file
View file

@ -0,0 +1,44 @@
import process from 'node:process';
import {test} from 'supertape';
let i = 0;
test('cloudcmd: server: ratelimit: x-forwarded-for', async (t) => {
const PORT = 3000;
process.env.PORT = PORT;
process.env.CLOUDCMD_LOG = 0;
await import('../bin/cloudcmd.js');
const {status} = await fetch(`http://localhost:${PORT}`, {
headers: {
'X-Forwarded-For': '127.0.0.1',
},
});
process.kill(process.pid, 'SIGUSR1');
t.notEqual(status, 500);
t.end();
});
test('cloudcmd: server: ratelimit', async (t) => {
const PORT = 3001;
const STATUS = 429;
process.env.PORT = PORT;
process.env.CLOUDCMD_LOG = 0;
await import(`../bin/cloudcmd.js?${i++}`);
for (let i = 0; i < 1000; i++) {
await fetch(`http://localhost:${PORT}`);
}
const {status} = await fetch(`http://localhost:${PORT}`);
process.kill(process.pid, 'SIGUSR1');
t.equal(status, STATUS);
t.end();
});