UNPKG

@debugg-ai/debugg-ai-mcp

Version:

Zero-Config, Fully AI-Managed End-to-End Testing for all code gen platforms.

39 lines (38 loc) 1.94 kB
import { Logger } from '../utils/logger.js'; import { handleExternalServiceError } from '../utils/errors.js'; import { DebuggAIServerClient } from '../services/index.js'; import { config } from '../config/index.js'; import { resolveProject, resolveTestSuite } from '../utils/resolveProject.js'; const logger = new Logger({ module: 'getTestSuiteResultsHandler' }); function errorResp(error, message, extra = {}) { return { content: [{ type: 'text', text: JSON.stringify({ error, message, ...extra }, null, 2) }], isError: true }; } export async function getTestSuiteResultsHandler(input, _context) { const start = Date.now(); logger.toolStart('get_test_suite_results', input); try { const client = new DebuggAIServerClient(config.api.key); await client.init(); let suiteUuid = input.suiteUuid; if (!suiteUuid) { let projectUuid = input.projectUuid; if (!projectUuid) { const resolved = await resolveProject(client, input.projectName); if ('error' in resolved) return errorResp(resolved.error, resolved.message, { candidates: resolved.candidates }); projectUuid = resolved.uuid; } const resolved = await resolveTestSuite(client, input.suiteName, projectUuid); if ('error' in resolved) return errorResp(resolved.error, resolved.message, { candidates: resolved.candidates }); suiteUuid = resolved.uuid; } const detail = await client.getTestSuiteDetail(suiteUuid); logger.toolComplete('get_test_suite_results', Date.now() - start); return { content: [{ type: 'text', text: JSON.stringify(detail, null, 2) }] }; } catch (error) { logger.toolError('get_test_suite_results', error, Date.now() - start); throw handleExternalServiceError(error, 'DebuggAI', 'get_test_suite_results'); } }