Skip to content

Commit 36cde4e

Browse files
authored
fix(devframe): stop mcp-http tests from sharing a port (#86)
1 parent c96ace5 commit 36cde4e

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

packages/devframe/src/adapters/mcp/__tests__/mcp-http.test.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)