* Benchmarks rate limit override functionality
()
| 320 | * Benchmarks rate limit override functionality |
| 321 | */ |
| 322 | function benchmarkRateOverride () { |
| 323 | console.log("\n📊 Rate Limit Override Performance"); |
| 324 | console.log("-".repeat(40)); |
| 325 | |
| 326 | const suite = new Benchmark.Suite(); |
| 327 | |
| 328 | // Mock override function |
| 329 | const overrideFunction = (req, state) => { |
| 330 | // VIP users get higher limits |
| 331 | if (req.headers["x-user-type"] === "vip") { |
| 332 | return { |
| 333 | ...state, |
| 334 | limit: state.limit * 10, |
| 335 | remaining: state.remaining * 10 |
| 336 | }; |
| 337 | } |
| 338 | |
| 339 | // API keys get different limits |
| 340 | if (req.headers["x-api-key"]) { |
| 341 | return { |
| 342 | ...state, |
| 343 | limit: 1000, |
| 344 | remaining: 1000 |
| 345 | }; |
| 346 | } |
| 347 | |
| 348 | return state; |
| 349 | }; |
| 350 | |
| 351 | const checkRateWithOverride = req => { |
| 352 | let state = { |
| 353 | limit: 100, |
| 354 | remaining: 50, |
| 355 | reset: Date.now() + 900000 |
| 356 | }; |
| 357 | |
| 358 | // Apply override |
| 359 | state = overrideFunction(req, state); |
| 360 | |
| 361 | return state.remaining > 0; |
| 362 | }; |
| 363 | |
| 364 | suite |
| 365 | .add("Rate Override - Normal user", () => { |
| 366 | const req = createMockRequest(); |
| 367 | checkRateWithOverride(req); |
| 368 | }) |
| 369 | .add("Rate Override - VIP user", () => { |
| 370 | const req = createMockRequest({ |
| 371 | headers: { "x-user-type": "vip" } |
| 372 | }); |
| 373 | checkRateWithOverride(req); |
| 374 | }) |
| 375 | .add("Rate Override - API key user", () => { |
| 376 | const req = createMockRequest({ |
| 377 | headers: { "x-api-key": "api-key-12345" } |
| 378 | }); |
| 379 | checkRateWithOverride(req); |
no test coverage detected