@@ -34,7 +34,15 @@ describe('mcp adapter (streamable http route)', () => {
3434 } )
3535
3636 async function boot ( def = defineTestDef ( ) ) : Promise < StartedServer > {
37- server = await createDevServer ( def , { host : '127.0.0.1' , mcp : true } )
37+ // `port: 0` lets the OS assign a fresh ephemeral port per test. Without
38+ // it every test binds the same default port, and since they all share
39+ // one process, Node's global `fetch()` (undici) pools keep-alive
40+ // sockets per origin (`http://127.0.0.1:<port>`) — a later test can get
41+ // handed a stale, already-closed socket left over from an earlier
42+ // test's (torn-down) server, failing instantly with a socket error, or
43+ // making that earlier server's `close()` hang until undici's
44+ // keep-alive timeout releases it.
45+ server = await createDevServer ( def , { host : '127.0.0.1' , port : 0 , mcp : true } )
3846 return server
3947 }
4048
@@ -47,7 +55,7 @@ describe('mcp adapter (streamable http route)', () => {
4755 } )
4856
4957 it ( 'omits the mcp block when the route is disabled' , async ( ) => {
50- server = await createDevServer ( defineTestDef ( ) , { host : '127.0.0.1' , mcp : false } )
58+ server = await createDevServer ( defineTestDef ( ) , { host : '127.0.0.1' , port : 0 , mcp : false } )
5159 const res = await fetch ( `${ server . origin } /__connection.json` )
5260 const meta = await res . json ( ) as { mcp ?: unknown }
5361 expect ( meta . mcp ) . toBeUndefined ( )
0 commit comments