diff options
| author | ashwinpvg <[email protected]> | 2025-07-24 10:37:39 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-24 17:37:39 +0000 |
| commit | d254d4ce007d446dbd246658345a30ff86413721 (patch) | |
| tree | dbac317ca2a8f8d2f9e11e9100491af77b7fcde4 /packages/core/src/tools/mcp-client.test.ts | |
| parent | 3dd6e431df057af47b96990d0c9c6477ccfbe452 (diff) | |
Add Google credentials provider for authenticating with MCP servers (#4748)
Diffstat (limited to 'packages/core/src/tools/mcp-client.test.ts')
| -rw-r--r-- | packages/core/src/tools/mcp-client.test.ts | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/packages/core/src/tools/mcp-client.test.ts b/packages/core/src/tools/mcp-client.test.ts index fbd2a2d4..428c9d2d 100644 --- a/packages/core/src/tools/mcp-client.test.ts +++ b/packages/core/src/tools/mcp-client.test.ts @@ -16,6 +16,8 @@ import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js'; import * as SdkClientStdioLib from '@modelcontextprotocol/sdk/client/stdio.js'; import * as ClientLib from '@modelcontextprotocol/sdk/client/index.js'; import * as GenAiLib from '@google/genai'; +import { GoogleCredentialProvider } from '../mcp/google-auth-provider.js'; +import { AuthProviderType } from '../config/config.js'; vi.mock('@modelcontextprotocol/sdk/client/stdio.js'); vi.mock('@modelcontextprotocol/sdk/client/index.js'); @@ -173,6 +175,63 @@ describe('mcp-client', () => { stderr: 'pipe', }); }); + + describe('useGoogleCredentialProvider', () => { + it('should use GoogleCredentialProvider when specified', async () => { + const transport = await createTransport( + 'test-server', + { + httpUrl: 'http://test-server', + authProviderType: AuthProviderType.GOOGLE_CREDENTIALS, + oauth: { + scopes: ['scope1'], + }, + }, + false, + ); + + expect(transport).toBeInstanceOf(StreamableHTTPClientTransport); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const authProvider = (transport as any)._authProvider; + expect(authProvider).toBeInstanceOf(GoogleCredentialProvider); + }); + + it('should use GoogleCredentialProvider with SSE transport', async () => { + const transport = await createTransport( + 'test-server', + { + url: 'http://test-server', + authProviderType: AuthProviderType.GOOGLE_CREDENTIALS, + oauth: { + scopes: ['scope1'], + }, + }, + false, + ); + + expect(transport).toBeInstanceOf(SSEClientTransport); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const authProvider = (transport as any)._authProvider; + expect(authProvider).toBeInstanceOf(GoogleCredentialProvider); + }); + + it('should throw an error if no URL is provided with GoogleCredentialProvider', async () => { + await expect( + createTransport( + 'test-server', + { + authProviderType: AuthProviderType.GOOGLE_CREDENTIALS, + oauth: { + scopes: ['scope1'], + }, + }, + false, + ), + ).rejects.toThrow( + 'No URL configured for Google Credentials MCP server', + ); + }); + }); }); describe('isEnabled', () => { const funcDecl = { name: 'myTool' }; |
