Skip to main content
Glama

Analytical MCP Server

errors.test.ts5 kB
import { describe, it, expect } from '@jest/globals'; import { LegacyAnalyticalError, LegacyAPIError, LegacyValidationError, LegacyDataProcessingError, LegacyConfigurationError, LegacyToolExecutionError, isErrorType, // Import enhanced classes for comparison AnalyticalError, ValidationError, APIError, ErrorCodes } from '../errors.js'; describe('Legacy Error Utilities (Backward Compatibility)', () => { describe('LegacyAnalyticalError', () => { it('should create a basic error with correct name', () => { const error = new LegacyAnalyticalError('Test error'); expect(error.name).toBe('AnalyticalError'); expect(error.message).toBe('Test error'); expect(error instanceof Error).toBe(true); expect(error instanceof LegacyAnalyticalError).toBe(true); }); }); describe('LegacyAPIError', () => { it('should create an API error with status and retryable flag', () => { const error = new LegacyAPIError('API test error', 429, true, 'test/endpoint'); expect(error.name).toBe('APIError'); expect(error.message).toBe('API test error'); expect(error.status).toBe(429); expect(error.retryable).toBe(true); expect(error.endpoint).toBe('test/endpoint'); expect(error instanceof LegacyAnalyticalError).toBe(true); expect(error instanceof LegacyAPIError).toBe(true); }); it('should handle missing optional parameters', () => { const error = new LegacyAPIError('API test error'); expect(error.status).toBeUndefined(); expect(error.retryable).toBe(false); expect(error.endpoint).toBeUndefined(); }); }); describe('LegacyValidationError', () => { it('should create a validation error with details', () => { const details = { field: 'name', issue: 'Required' }; const error = new LegacyValidationError('Validation test error', details); expect(error.name).toBe('ValidationError'); expect(error.message).toBe('Validation test error'); expect(error.details).toEqual(details); expect(error instanceof LegacyAnalyticalError).toBe(true); expect(error instanceof LegacyValidationError).toBe(true); }); }); describe('LegacyDataProcessingError', () => { it('should create a data processing error with data', () => { const data = { rows: 10, processed: 5 }; const error = new LegacyDataProcessingError('Data processing test error', data); expect(error.name).toBe('DataProcessingError'); expect(error.message).toBe('Data processing test error'); expect(error.data).toEqual(data); expect(error instanceof LegacyAnalyticalError).toBe(true); expect(error instanceof LegacyDataProcessingError).toBe(true); }); }); describe('LegacyConfigurationError', () => { it('should create a configuration error', () => { const error = new LegacyConfigurationError('Configuration test error'); expect(error.name).toBe('ConfigurationError'); expect(error.message).toBe('Configuration test error'); expect(error instanceof LegacyAnalyticalError).toBe(true); expect(error instanceof LegacyConfigurationError).toBe(true); }); }); describe('LegacyToolExecutionError', () => { it('should create a tool execution error with tool name', () => { const error = new LegacyToolExecutionError('test_tool', 'Tool execution test error'); expect(error.name).toBe('ToolExecutionError'); expect(error.message).toBe('Error in test_tool: Tool execution test error'); expect(error.toolName).toBe('test_tool'); expect(error instanceof LegacyAnalyticalError).toBe(true); expect(error instanceof LegacyToolExecutionError).toBe(true); }); }); describe('isErrorType', () => { it('should correctly identify legacy error types', () => { const apiError = new LegacyAPIError('Test API error'); const validationError = new LegacyValidationError('Test validation error'); const genericError = new Error('Generic error'); expect(isErrorType(apiError, LegacyAPIError)).toBe(true); expect(isErrorType(apiError, LegacyValidationError)).toBe(false); expect(isErrorType(validationError, LegacyValidationError)).toBe(true); expect(isErrorType(genericError, Error)).toBe(true); expect(isErrorType(genericError, LegacyAPIError)).toBe(false); expect(isErrorType('not an error', Error)).toBe(false); expect(isErrorType(null, Error)).toBe(false); }); it('should work with enhanced error types', () => { const enhancedApiError = new APIError(ErrorCodes.API_TIMEOUT, 'Enhanced API error'); const enhancedValidationError = new ValidationError(ErrorCodes.INVALID_INPUT, 'Enhanced validation error'); expect(isErrorType(enhancedApiError, APIError)).toBe(true); expect(isErrorType(enhancedValidationError, ValidationError)).toBe(true); expect(isErrorType(enhancedApiError, ValidationError)).toBe(false); }); }); });

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/quanticsoul4772/analytical-mcp'

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