@@ -103,6 +103,43 @@ describe('McpClientManager', () => {
103103 expect ( manager . getDiscoveryState ( ) ) . toBe ( MCPDiscoveryState . COMPLETED ) ;
104104 } ) ;
105105
106+ it ( 'should mark discovery completed when all configured servers are user-disabled' , async ( ) => {
107+ mockConfig . getMcpServers . mockReturnValue ( {
108+ 'test-server' : { } ,
109+ } ) ;
110+ mockConfig . getMcpEnablementCallbacks . mockReturnValue ( {
111+ isSessionDisabled : vi . fn ( ) . mockReturnValue ( false ) ,
112+ isFileEnabled : vi . fn ( ) . mockResolvedValue ( false ) ,
113+ } ) ;
114+
115+ const manager = new McpClientManager ( '0.0.1' , toolRegistry , mockConfig ) ;
116+ const promise = manager . startConfiguredMcpServers ( ) ;
117+ expect ( manager . getDiscoveryState ( ) ) . toBe ( MCPDiscoveryState . IN_PROGRESS ) ;
118+ await promise ;
119+
120+ expect ( manager . getDiscoveryState ( ) ) . toBe ( MCPDiscoveryState . COMPLETED ) ;
121+ expect ( manager . getMcpServerCount ( ) ) . toBe ( 0 ) ;
122+ expect ( mockedMcpClient . connect ) . not . toHaveBeenCalled ( ) ;
123+ expect ( mockedMcpClient . discover ) . not . toHaveBeenCalled ( ) ;
124+ } ) ;
125+
126+ it ( 'should mark discovery completed when all configured servers are blocked' , async ( ) => {
127+ mockConfig . getMcpServers . mockReturnValue ( {
128+ 'test-server' : { } ,
129+ } ) ;
130+ mockConfig . getBlockedMcpServers . mockReturnValue ( [ 'test-server' ] ) ;
131+
132+ const manager = new McpClientManager ( '0.0.1' , toolRegistry , mockConfig ) ;
133+ const promise = manager . startConfiguredMcpServers ( ) ;
134+ expect ( manager . getDiscoveryState ( ) ) . toBe ( MCPDiscoveryState . IN_PROGRESS ) ;
135+ await promise ;
136+
137+ expect ( manager . getDiscoveryState ( ) ) . toBe ( MCPDiscoveryState . COMPLETED ) ;
138+ expect ( manager . getMcpServerCount ( ) ) . toBe ( 0 ) ;
139+ expect ( mockedMcpClient . connect ) . not . toHaveBeenCalled ( ) ;
140+ expect ( mockedMcpClient . discover ) . not . toHaveBeenCalled ( ) ;
141+ } ) ;
142+
106143 it ( 'should not discover tools if folder is not trusted' , async ( ) => {
107144 mockConfig . getMcpServers . mockReturnValue ( {
108145 'test-server' : { } ,
0 commit comments