Skip to main content
Glama
MetadataMetricsService.test.ts1.66 kB
import { describe, it, expect, beforeEach } from 'vitest'; import { InMemoryMetadataMetricsService } from '../../../src/services/metadata/MetadataMetricsService.js'; describe('InMemoryMetadataMetricsService', () => { let service: InMemoryMetadataMetricsService; beforeEach(() => { service = new InMemoryMetadataMetricsService(); }); it('records discovery events and summarises metrics', () => { service.record({ resourceType: 'companies', duration: 120, cacheHit: false, attributeCount: 5, }); service.record({ resourceType: 'companies', duration: 80, cacheHit: true, attributeCount: 5, }); const summary = service.getMetrics(); expect(summary.totalRequests).toBe(2); expect(summary.cacheHits).toBe(1); expect(summary.avgDuration).toBeCloseTo(100, 5); expect(summary.byResourceType['companies'].count).toBe(2); }); it('filters metrics by resource type and clears data', () => { service.record({ resourceType: 'companies', duration: 50, cacheHit: false, }); service.record({ resourceType: 'people', duration: 100, cacheHit: false, error: 'timeout', }); const summary = service.getMetrics({ resourceType: 'people' }); expect(summary.totalRequests).toBe(0); // filtered summary excludes errors by default const summaryWithErrors = service.getMetrics({ resourceType: 'people', includeErrors: true, }); expect(summaryWithErrors.totalRequests).toBe(1); service.clear(); const cleared = service.getMetrics(); expect(cleared.totalRequests).toBe(0); }); });

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/kesslerio/attio-mcp-server'

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