Skip to main content
Glama

Google Cloud MCP Server

by krzko
project-tools.test.ts2.94 kB
/** * Tests for project tools utilities */ import { describe, it, expect, vi, beforeEach } from 'vitest'; // Import mocks first import '../../mocks/google-cloud-mocks.js'; import { createMockMcpServer } from '../../utils/test-helpers.js'; describe('Project Tools', () => { let mockServer: ReturnType<typeof createMockMcpServer>; beforeEach(() => { vi.clearAllMocks(); mockServer = createMockMcpServer(); }); describe('registerProjectTools', () => { it('should register project tools with MCP server', async () => { const { registerProjectTools } = await import('../../../src/utils/project-tools.js'); registerProjectTools(mockServer as any); expect(mockServer.registerTool).toHaveBeenCalledWith( 'gcp-utils-set-project-id', expect.any(Object), expect.any(Function) ); expect(mockServer.registerTool).toHaveBeenCalledWith( 'gcp-utils-get-project-id', expect.any(Object), expect.any(Function) ); }); it('should handle set-project-id tool execution', async () => { const { registerProjectTools } = await import('../../../src/utils/project-tools.js'); registerProjectTools(mockServer as any); const toolCall = mockServer.registerTool.mock.calls.find( call => call[0] === 'gcp-utils-set-project-id' ); expect(toolCall).toBeDefined(); const toolHandler = toolCall![2]; const result = await toolHandler({ project_id: 'new-project-id' }); expect(result).toBeDefined(); expect(result.content).toBeDefined(); expect(result.content[0].text).toContain('Project ID Updated'); }); it('should handle get-project-id tool execution', async () => { const { registerProjectTools } = await import('../../../src/utils/project-tools.js'); registerProjectTools(mockServer as any); const toolCall = mockServer.registerTool.mock.calls.find( call => call[0] === 'gcp-utils-get-project-id' ); expect(toolCall).toBeDefined(); const toolHandler = toolCall![2]; const result = await toolHandler({}); expect(result).toBeDefined(); expect(result.content).toBeDefined(); expect(result.content[0].text).toContain('Current Google Cloud Project'); }); it('should handle invalid project ID', async () => { const { registerProjectTools } = await import('../../../src/utils/project-tools.js'); registerProjectTools(mockServer as any); const toolCall = mockServer.registerTool.mock.calls.find( call => call[0] === 'gcp-utils-set-project-id' ); const toolHandler = toolCall![2]; const result = await toolHandler({ project_id: '' }); expect(result).toBeDefined(); expect(result.content[0].text).toContain('Error'); }); }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/krzko/google-cloud-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server