Skip to main content
Glama
mcp-connection.test.js2.33 kB
import { describe, test, expect, beforeEach, afterEach } from 'vitest'; import { setupMssqlMock, setupStdioMock, setupMcpTest, resetEnvironment, createTestMcpServerV4V2, mockPool, sql, setupModularMocks } from './mcp-shared-fixtures.js'; // Setup module mocks setupMssqlMock(); setupStdioMock(); setupModularMocks(); describe('Database Connection', () => { let mcpServer; beforeEach(async () => { setupMcpTest(); mcpServer = await createTestMcpServerV4V2(); }); afterEach(() => { resetEnvironment(); }); test('should connect to database with correct configuration', async () => { sql.connect.mockResolvedValue(mockPool); const pool = await mcpServer.connectToDatabase(); expect(sql.connect).toHaveBeenCalledWith( expect.objectContaining({ server: 'localhost', port: 1433, database: 'master', user: 'testuser', password: 'testpass', options: { encrypt: false, trustServerCertificate: true, enableArithAbort: true, requestTimeout: 30000 } }) ); expect(pool).toBe(mockPool); }); test('should handle Windows authentication when no user/password provided', async () => { const mcpServerWithWindowsAuth = await createTestMcpServerV4V2({ SQL_SERVER_USER: '', SQL_SERVER_PASSWORD: '', SQL_SERVER_DOMAIN: 'TESTDOMAIN' }); sql.connect.mockResolvedValue(mockPool); await mcpServerWithWindowsAuth.connectToDatabase(); expect(sql.connect).toHaveBeenCalledWith( expect.objectContaining({ authentication: { type: 'ntlm', options: { domain: 'TESTDOMAIN' } } }) ); }); test('should reuse existing connection if already connected', async () => { mcpServer.pool = { connected: true }; const result = await mcpServer.connectToDatabase(); expect(sql.connect).not.toHaveBeenCalled(); expect(result).toBe(mcpServer.pool); }); test('should handle connection errors', async () => { const error = new Error('Connection failed'); sql.connect.mockRejectedValue(error); await expect(mcpServer.connectToDatabase()).rejects.toThrow( 'Failed to connect to SQL Server after 3 attempts: Connection failed' ); }); });

Latest Blog Posts

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/egarcia74/warp-sql-server-mcp'

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