Skip to main content
Glama
error-handling.test.ts2.83 kB
import { describe, it, expect, vi } from 'vitest'; import { AxiosError } from 'axios'; import { validateAppName } from '../../utils/errors.js'; describe('Error Handling Edge Cases', () => { describe('API Client Error Handling', () => { it('should handle 500 server errors', async () => { const mockClient = { get: vi.fn().mockRejectedValue({ response: { status: 500, data: { error: 'Internal Server Error' }, }, } as AxiosError), } as any; // This would be tested with actual client instance expect(mockClient.get).toBeDefined(); }); it('should handle 502 bad gateway errors', async () => { const error = { response: { status: 502, data: {}, }, } as AxiosError; // Verify error structure expect(error.response?.status).toBe(502); }); it('should handle 503 service unavailable errors', async () => { const error = { response: { status: 503, data: {}, }, } as AxiosError; expect(error.response?.status).toBe(503); }); it('should handle timeout errors', async () => { const error = { code: 'ECONNABORTED', message: 'timeout of 30000ms exceeded', } as AxiosError; expect(error.code).toBe('ECONNABORTED'); }); it('should handle network errors', async () => { const error = { request: {}, message: 'Network Error', } as AxiosError; expect(error.request).toBeDefined(); expect(error.message).toBe('Network Error'); }); }); describe('Validation Error Messages', () => { it('should provide clear error messages for invalid app names', () => { const testCases = [ { name: 'MyApp', expected: 'lowercase' }, { name: 'my app', expected: 'lowercase' }, { name: 'my.app', expected: 'lowercase' }, { name: 'ab', expected: '3-32 characters' }, ]; testCases.forEach(({ name, expected }) => { try { validateAppName(name); // If validation passes, that's also valid (API will handle) } catch (error: any) { // If validation fails, check error message expect(error.message.toLowerCase()).toContain(expected.toLowerCase()); } }); }); }); });

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/razavioo/liara-mcp'

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