Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
updated tests
  • Loading branch information
waleedlatif1 committed Feb 9, 2026
commit 7c6927d6437ccfb6528815d50366836e7ae0a017
2 changes: 0 additions & 2 deletions apps/sim/lib/mcp/client.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,6 @@ describe('McpClient notification handler', () => {
expect(capturedNotificationHandler).not.toBeNull()

await client.disconnect()

// Simulate a late notification arriving after disconnect
await capturedNotificationHandler!()

expect(onToolsChanged).not.toHaveBeenCalled()
Expand Down
12 changes: 4 additions & 8 deletions apps/sim/lib/mcp/connection-manager.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,10 @@ function setupBaseMocks() {
}

describe('McpConnectionManager', () => {
let manager: { connect: Function; dispose: Function } | null = null
let manager: {
connect: (...args: unknown[]) => Promise<{ supportsListChanged: boolean }>
dispose: () => void
} | null = null

afterEach(() => {
manager?.dispose()
Expand Down Expand Up @@ -72,17 +75,14 @@ describe('McpConnectionManager', () => {

const config = serverConfig('server-1')

// Fire two concurrent connect() calls for the same server
const p1 = mgr.connect(config, 'user-1', 'ws-1')
const p2 = mgr.connect(config, 'user-1', 'ws-1')

deferred.resolve()
const [r1, r2] = await Promise.all([p1, p2])

// Only one McpClient should have been instantiated
expect(instances).toHaveLength(1)
expect(r1.supportsListChanged).toBe(true)
// Second call hits the connectingServers guard and returns false
expect(r2.supportsListChanged).toBe(false)
})

Expand All @@ -109,11 +109,9 @@ describe('McpConnectionManager', () => {

const config = serverConfig('server-2')

// First connect — server doesn't support listChanged, disconnects immediately
const r1 = await mgr.connect(config, 'user-1', 'ws-1')
expect(r1.supportsListChanged).toBe(false)

// connectingServers cleaned up via finally, so second connect proceeds
const r2 = await mgr.connect(config, 'user-1', 'ws-1')
expect(r2.supportsListChanged).toBe(false)

Expand Down Expand Up @@ -148,11 +146,9 @@ describe('McpConnectionManager', () => {

const config = serverConfig('server-3')

// First connect fails
const r1 = await mgr.connect(config, 'user-1', 'ws-1')
expect(r1.supportsListChanged).toBe(false)

// Second connect should NOT be blocked by a stale connectingServers entry
const r2 = await mgr.connect(config, 'user-1', 'ws-1')
expect(r2.supportsListChanged).toBe(true)
expect(instances).toHaveLength(2)
Expand Down