Skip to main content
Glama
srobbin
by srobbin
utils.test.ts2.76 kB
import { describe, it, expect } from 'vitest'; // Utility functions for testing type RetrievalParams = { query: string; limit?: number; }; type RetrievalResult = { id: string; content: string; score: number; metadata: { source: string; page?: number; url?: string; }; }; // Mimic the performRetrieval function from the main code function performRetrieval(params: RetrievalParams): RetrievalResult[] { const { query, limit = 5 } = params; const dummyResults: RetrievalResult[] = [ { id: '1', content: 'This is the first result related to ' + query, score: 0.95, metadata: { source: 'document1.pdf', page: 5, }, }, { id: '2', content: 'Another result that matches the query: ' + query, score: 0.87, metadata: { source: 'document2.docx', page: 12, }, }, { id: '3', content: 'Additional information about ' + query + ' with some context', score: 0.76, metadata: { source: 'website.html', url: 'https://example.com/page', }, }, ]; return dummyResults.slice(0, limit); } describe('retrieve tool', () => { it('should return results with default limit', () => { const params = { query: 'test query' }; const results = performRetrieval(params); expect(results).toHaveLength(3); expect(results[0].content).toContain('test query'); expect(results[0].id).toBe('1'); expect(results[0].score).toBe(0.95); }); it('should limit results when limit is specified', () => { const params = { query: 'test query', limit: 2 }; const results = performRetrieval(params); expect(results).toHaveLength(2); expect(results[1].id).toBe('2'); }); it('should handle limit of 1', () => { const params = { query: 'test query', limit: 1 }; const results = performRetrieval(params); expect(results).toHaveLength(1); expect(results[0].id).toBe('1'); }); it('should handle limit greater than available results', () => { const params = { query: 'test query', limit: 10 }; const results = performRetrieval(params); expect(results).toHaveLength(3); // Only 3 dummy results exist }); it('should include metadata in results', () => { const params = { query: 'test query' }; const results = performRetrieval(params); expect(results[0].metadata).toBeDefined(); expect(results[0].metadata.source).toBe('document1.pdf'); expect(results[0].metadata.page).toBe(5); expect(results[2].metadata).toBeDefined(); expect(results[2].metadata.source).toBe('website.html'); expect(results[2].metadata.url).toBe('https://example.com/page'); }); });

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/srobbin/opengov-mcp-server'

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