changed 429 failover from 3 consecutive to 2 for OAuth users (#1579)

This commit is contained in:
Bryan Morgan
2025-06-25 15:37:23 -04:00
committed by GitHub
parent 4b5ca6bc77
commit eacbb3551c
3 changed files with 8 additions and 9 deletions

View File

@@ -50,16 +50,15 @@ describe('Flash Fallback Integration', () => {
expect(result).toBe(true);
});
it('should trigger fallback after 3 consecutive 429 errors for OAuth users', async () => {
it('should trigger fallback after 2 consecutive 429 errors for OAuth users', async () => {
let fallbackCalled = false;
let fallbackModel = '';
// Mock function that simulates exactly 3 429 errors, then succeeds after fallback
// Mock function that simulates exactly 2 429 errors, then succeeds after fallback
const mockApiCall = vi
.fn()
.mockRejectedValueOnce(createSimulated429Error())
.mockRejectedValueOnce(createSimulated429Error())
.mockRejectedValueOnce(createSimulated429Error())
.mockResolvedValueOnce('success after fallback');
// Mock fallback handler
@@ -69,9 +68,9 @@ describe('Flash Fallback Integration', () => {
return fallbackModel;
});
// Test with OAuth personal auth type, with maxAttempts = 3 to ensure fallback triggers
// Test with OAuth personal auth type, with maxAttempts = 2 to ensure fallback triggers
const result = await retryWithBackoff(mockApiCall, {
maxAttempts: 3,
maxAttempts: 2,
initialDelayMs: 1,
maxDelayMs: 10,
shouldRetry: (error: Error) => {
@@ -89,8 +88,8 @@ describe('Flash Fallback Integration', () => {
AuthType.LOGIN_WITH_GOOGLE_PERSONAL,
);
expect(result).toBe('success after fallback');
// Should have: 3 failures, then fallback triggered, then 1 success after retry reset
expect(mockApiCall).toHaveBeenCalledTimes(4);
// Should have: 2 failures, then fallback triggered, then 1 success after retry reset
expect(mockApiCall).toHaveBeenCalledTimes(3);
});
it('should not trigger fallback for API key users', async () => {