/home/techb158/cosmic-risk.abdallabala.com/tests
NameSizeModeActions
idempotency.test.js17140644editdlrm
integration-service.test.js44960644editdlrm
live-pm-clients.test.js57310644editdlrm
local-server.test.js56870644editdlrm
metrics.test.js16910644editdlrm
oidc.test.js23670644editdlrm
rate-limit.test.js14140644editdlrm
saas-domain.test.js31370644editdlrm
tenant-security.test.js11840644editdlrm
Edit: /home/techb158/cosmic-risk.abdallabala.com/tests/rate-limit.test.js (1414B)
const assert = require("assert"); const { checkRateLimit, getClientIp, resetRateLimits } = require("../src/lib/rate-limit"); resetRateLimits(); let r = checkRateLimit("test-ip", 5, 60_000); assert.strictEqual(r.allowed, true); assert.strictEqual(r.remaining, 4); assert.ok(r.reset > 0); r = checkRateLimit("test-ip", 5, 60_000); assert.strictEqual(r.remaining, 3); r = checkRateLimit("test-ip", 5, 60_000); r = checkRateLimit("test-ip", 5, 60_000); r = checkRateLimit("test-ip", 5, 60_000); r = checkRateLimit("test-ip", 5, 60_000); assert.strictEqual(r.allowed, false); assert.strictEqual(r.remaining, 0); resetRateLimits(); r = checkRateLimit("test-ip", 5, 60_000); assert.strictEqual(r.remaining, 4, "reset should clear all hits"); r = checkRateLimit("ip-a", 10, 60_000); assert.strictEqual(r.remaining, 9); r = checkRateLimit("ip-b", 10, 60_000); assert.strictEqual(r.remaining, 9, "different keys should have independent counters"); const req = { headers: { get: (name) => name === "x-forwarded-for" ? "203.0.113.42, 10.0.0.1" : null } }; assert.strictEqual(getClientIp(req), "203.0.113.42"); const req2 = { headers: { get: (name) => name === "x-real-ip" ? "198.51.100.7" : null } }; assert.strictEqual(getClientIp(req2), "198.51.100.7"); const req3 = { headers: { get: () => null } }; assert.strictEqual(getClientIp(req3), "127.0.0.1"); console.log("All rate limit tests passed.");