From f9759b9f80f48630e1b02ffeaa45940dc5631d01 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Thu, 12 Mar 2026 01:40:34 +0900 Subject: [PATCH] test(skill-mcp-manager): cover disposed guard after disconnectAll Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- .../skill-mcp-manager/connection-race.test.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/features/skill-mcp-manager/connection-race.test.ts b/src/features/skill-mcp-manager/connection-race.test.ts index 582c81b72..2b188c180 100644 --- a/src/features/skill-mcp-manager/connection-race.test.ts +++ b/src/features/skill-mcp-manager/connection-race.test.ts @@ -184,6 +184,22 @@ describe("getOrCreateClient disconnectAll race", () => { await expect(clientPromise).rejects.toThrow(/connection completed after shutdown/) expect(state.clients.has(clientKey)).toBe(false) }) + + it("#given state after disconnectAll() completed #when getOrCreateClient() is called #then it throws shut down error and registers nothing", async () => { + const state = createState() + const info = createClientInfo("session-b") + const clientKey = createClientKey(info) + + await disconnectAll(state) + + await expect(getOrCreateClient({ state, clientKey, info, config: stdioConfig })).rejects.toThrow(/has been shut down/) + expect(state.clients.size).toBe(0) + expect(state.pendingConnections.size).toBe(0) + expect(state.inFlightConnections.size).toBe(0) + expect(state.disposed).toBe(true) + expect(createdClients).toHaveLength(0) + expect(createdTransports).toHaveLength(0) + }) }) describe("getOrCreateClient multi-key disconnect race", () => {