MCPcopy Create free account
hub / github.com/codeaashu/claude-code / setMockRateLimitScenario

Function setMockRateLimitScenario

src/services/mockRateLimits.ts:321–600  ·  view source on GitHub ↗
(scenario: MockScenario)

Source from the content-addressed store, hash-verified

319}
320
321export function setMockRateLimitScenario(scenario: MockScenario): void {
322 if (process.env.USER_TYPE !== 'ant') {
323 return
324 }
325
326 if (scenario === 'clear') {
327 mockHeaders = {}
328 mockHeaderless429Message = null
329 mockEnabled = false
330 return
331 }
332
333 mockEnabled = true
334
335 // Set reset times for demos
336 const fiveHoursFromNow = Math.floor(Date.now() / 1000) + 5 * 3600
337 const sevenDaysFromNow = Math.floor(Date.now() / 1000) + 7 * 24 * 3600
338
339 // Clear existing headers
340 mockHeaders = {}
341 mockHeaderless429Message = null
342
343 // Only clear exceeded limits for scenarios that explicitly set them
344 // Overage scenarios should preserve existing exceeded limits
345 const preserveExceededLimits = [
346 'overage-active',
347 'overage-warning',
348 'overage-exhausted',
349 ].includes(scenario)
350 if (!preserveExceededLimits) {
351 exceededLimits = []
352 }
353
354 switch (scenario) {
355 case 'normal':
356 mockHeaders = {
357 'anthropic-ratelimit-unified-status': 'allowed',
358 'anthropic-ratelimit-unified-reset': String(fiveHoursFromNow),
359 }
360 break
361
362 case 'session-limit-reached':
363 exceededLimits = [{ type: 'five_hour', resetsAt: fiveHoursFromNow }]
364 updateRepresentativeClaim()
365 mockHeaders['anthropic-ratelimit-unified-status'] = 'rejected'
366 break
367
368 case 'approaching-weekly-limit':
369 mockHeaders = {
370 'anthropic-ratelimit-unified-status': 'allowed_warning',
371 'anthropic-ratelimit-unified-reset': String(sevenDaysFromNow),
372 'anthropic-ratelimit-unified-representative-claim': 'seven_day',
373 }
374 break
375
376 case 'weekly-limit-reached':
377 exceededLimits = [{ type: 'seven_day', resetsAt: sevenDaysFromNow }]
378 updateRepresentativeClaim()

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected