Skip to main content
Glama

Curupira

by drzln
test-container.ts2.8 kB
/** * Test Container Setup - Test Infrastructure * Provides dependency injection container for tests */ import { DIContainer } from '../core/di/container.js'; import type { Container } from '../core/di/container.js'; import { ChromeServiceToken, ChromeClientToken, TypedCDPClientToken, ToolRegistryToken, ResourceRegistryToken, LoggerToken, ValidatorToken, ErrorHandlerToken, ChromeConfigToken, ServerConfigToken } from '../core/di/tokens.js'; import { MockChromeService } from './mocks/chrome-service.mock.js'; import { MockChromeClient } from './mocks/chrome-client.mock.js'; import { MockTypedCDPClient } from './mocks/typed-cdp-client.mock.js'; import { MockToolRegistry } from './mocks/tool-registry.mock.js'; import { MockResourceRegistry } from './mocks/resource-registry.mock.js'; import { MockLogger } from './mocks/logger.mock.js'; import { MockValidator } from './mocks/validator.mock.js'; import { ErrorHandler } from '../core/error-handler.js'; export function createTestContainer(): Container { const container = new DIContainer(); // Register test configuration container.register(ChromeConfigToken, () => ({ host: 'localhost', port: 9222, secure: false, defaultTimeout: 5000 })); container.register(ServerConfigToken, () => ({ port: 3000, host: 'localhost', logLevel: 'error' as const })); // Register mock services container.register(LoggerToken, () => new MockLogger()); container.register(ValidatorToken, () => new MockValidator()); container.register(ErrorHandlerToken, (c) => { const logger = c.resolve(LoggerToken); return new ErrorHandler(logger); }); container.register(ChromeClientToken, () => new MockChromeClient()); container.register(TypedCDPClientToken, () => new MockTypedCDPClient()); container.register(ChromeServiceToken, (c) => { const config = c.resolve(ChromeConfigToken); const logger = c.resolve(LoggerToken); return new MockChromeService(config, logger); }); container.register(ToolRegistryToken, () => new MockToolRegistry()); container.register(ResourceRegistryToken, () => new MockResourceRegistry()); return container; } /** * Helper to reset all mocks in the container */ export function resetTestContainer(container: Container): void { // Get all mock services and reset them const services = [ ChromeServiceToken, ChromeClientToken, TypedCDPClientToken, ToolRegistryToken, ResourceRegistryToken, LoggerToken, ValidatorToken ]; services.forEach((token: any) => { try { const service = container.resolve(token) as any; if (service && typeof service.reset === 'function') { service.reset(); } } catch { // Service might not be registered } }); }

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/drzln/curupira'

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