@@ -4,7 +4,13 @@ import { handleAuth } from "../handleAuth";
44import { TokenResource } from "../../../../open-api/generated" ;
55import type { Client } from "../../../../open-api/generated/client/types.gen" ;
66import type { ConductorLogger } from "../../../helpers/logger" ;
7- import { TOKEN_TTL_MS , MAX_AUTH_FAILURES , MAX_INITIAL_TOKEN_RETRIES } from "../../constants" ;
7+ import { TOKEN_TTL_MS , MAX_AUTH_FAILURES , MAX_AUTH_BACKOFF_MS , MAX_INITIAL_TOKEN_RETRIES } from "../../constants" ;
8+
9+ /** Total fake-time needed to exhaust all initial-auth retry backoffs. */
10+ const INITIAL_AUTH_TOTAL_BACKOFF_MS = Array . from (
11+ { length : MAX_INITIAL_TOKEN_RETRIES - 1 } ,
12+ ( _ , i ) => Math . min ( Math . pow ( 2 , i ) * 1000 , MAX_AUTH_BACKOFF_MS )
13+ ) . reduce ( ( a , b ) => a + b , 0 ) ;
814
915// Mock TokenResource.generateToken
1016jest . mock ( "../../../../open-api/generated" , ( ) => ( {
@@ -117,8 +123,7 @@ describe("handleAuth", () => {
117123 handleAuth ( mockClient as unknown as Client , "key-id" , "key-secret" , 3600000 , mockLogger )
118124 ) . rejects . toThrow ( "Failed to generate authorization token" ) ;
119125
120- // Advance past all retry backoff delays (1s + 2s = 3s)
121- await jest . advanceTimersByTimeAsync ( 3000 ) ;
126+ await jest . advanceTimersByTimeAsync ( INITIAL_AUTH_TOTAL_BACKOFF_MS ) ;
122127 await assertion ;
123128
124129 expect ( mockedGenerateToken ) . toHaveBeenCalledTimes ( MAX_INITIAL_TOKEN_RETRIES ) ;
@@ -141,8 +146,7 @@ describe("handleAuth", () => {
141146
142147 const p = handleAuth ( mockClient as unknown as Client , "key-id" , "key-secret" , 3600000 , mockLogger ) ;
143148
144- // Advance past retry backoff delays
145- await jest . advanceTimersByTimeAsync ( 3000 ) ;
149+ await jest . advanceTimersByTimeAsync ( INITIAL_AUTH_TOTAL_BACKOFF_MS ) ;
146150
147151 const result = await p ;
148152 expect ( result ) . toBeDefined ( ) ;
@@ -164,7 +168,7 @@ describe("handleAuth", () => {
164168 handleAuth ( mockClient as unknown as Client , "key-id" , "key-secret" , 3600000 , mockLogger )
165169 ) . rejects . toThrow ( "Failed to generate authorization token" ) ;
166170
167- await jest . advanceTimersByTimeAsync ( 3000 ) ;
171+ await jest . advanceTimersByTimeAsync ( INITIAL_AUTH_TOTAL_BACKOFF_MS ) ;
168172 await assertion ;
169173
170174 expect ( mockLogger . debug ) . toHaveBeenCalledWith (
@@ -184,7 +188,7 @@ describe("handleAuth", () => {
184188 handleAuth ( mockClient as unknown as Client , "key-id" , "key-secret" , 3600000 , mockLogger )
185189 ) . rejects . toThrow ( "Failed to generate authorization token" ) ;
186190
187- await jest . advanceTimersByTimeAsync ( 3000 ) ;
191+ await jest . advanceTimersByTimeAsync ( INITIAL_AUTH_TOTAL_BACKOFF_MS ) ;
188192 await assertion ;
189193
190194 expect ( mockLogger . debug ) . toHaveBeenCalledWith (
0 commit comments