@@ -152,6 +152,37 @@ test('Pool enforces maxIdle', async (t) => {
152152 await p . completed
153153} )
154154
155+ test ( 'maxIdle respects clientTtl' , async ( t ) => {
156+ const p = tspl ( t , { plan : 1 } )
157+
158+ const handler = ( _req , res ) => res . end ( 'ok' )
159+ const server = http . createServer ( { joinDuplicateHeaders : true } , handler )
160+ server . listen ( 0 )
161+ await once ( server , 'listening' )
162+
163+ const host = `http://localhost:${ server . address ( ) . port } `
164+ const dispatcher = new Pool ( host , {
165+ maxIdle : 3 ,
166+ clientTtl : 2000 ,
167+ keepAliveTimeout : 1000
168+ } )
169+
170+ t . after ( closeClientAndServerAsPromise ( dispatcher , server ) )
171+
172+ await Promise . all ( [
173+ request ( host , { dispatcher } ) ,
174+ request ( host , { dispatcher } ) ,
175+ request ( host , { dispatcher } ) ,
176+ request ( host , { dispatcher } ) ,
177+ request ( host , { dispatcher } )
178+ ] )
179+
180+ await new Promise ( resolve => setTimeout ( resolve , 1 ) )
181+ p . equal ( dispatcher . stats . free , 5 )
182+
183+ await p . completed
184+ } )
185+
155186test ( 'agent should call callback after closing internal pools' , async ( t ) => {
156187 const p = tspl ( t , { plan : 2 } )
157188
0 commit comments