Skip to main content
Glama
routing.test.ts1.68 kB
import { describe, it, expect } from 'vitest'; import { estimateCost, compareCosts, formatCost } from '../../src/routing/cost'; import { ModelConfig } from '../../src/config/models'; describe('Cost utilities', () => { const mockModel: ModelConfig = { id: 'test-model', provider: 'openai', apiModelName: 'gpt-4o-mini', layer: 'L1', relativeCost: 3, pricePer1kInputTokens: 0.00015, pricePer1kOutputTokens: 0.0006, capabilities: { code: true, general: true, reasoning: true, }, contextWindow: 128000, enabled: true, }; it('should calculate cost correctly', () => { const cost = estimateCost(1000, 1000, mockModel); expect(cost).toBeCloseTo(0.00075); // (1000/1000 * 0.00015) + (1000/1000 * 0.0006) }); it('should return 0 for models without pricing', () => { const freeModel = { ...mockModel, pricePer1kInputTokens: undefined }; const cost = estimateCost(1000, 1000, freeModel); expect(cost).toBe(0); }); it('should compare model costs', () => { const cheapModel = { ...mockModel, relativeCost: 1 }; const expensiveModel = { ...mockModel, relativeCost: 10 }; expect(compareCosts(cheapModel, expensiveModel)).toBeLessThan(0); expect(compareCosts(expensiveModel, cheapModel)).toBeGreaterThan(0); }); it('should format cost correctly', () => { expect(formatCost(0)).toBe('Free'); expect(formatCost(0.0001)).toBe('$0.000100'); expect(formatCost(0.005)).toBe('$0.0050'); expect(formatCost(1.5)).toBe('$1.50'); }); });

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/babasida246/ai-mcp-gateway'

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