Skip to main content
Glama
embeddings.test.ts1.33 kB
/** * Embedding Service Tests */ import { describe, test, expect, vi, beforeEach } from 'vitest'; import { EmbeddingService } from './embeddings.js'; // Mock OpenAI vi.mock('openai', () => { return { default: vi.fn().mockImplementation(() => ({ embeddings: { create: vi.fn().mockResolvedValue({ data: [{ embedding: Array(1536).fill(0.1) }], }), }, })), }; }); describe('EmbeddingService', () => { let service: EmbeddingService; beforeEach(() => { service = new EmbeddingService('test-api-key'); }); test('should return correct dimensions', () => { expect(service.getDimensions()).toBe(1536); }); test('should return embedding vector', async () => { const embedding = await service.getEmbedding('test text'); expect(embedding).toHaveLength(1536); expect(embedding[0]).toBe(0.1); }); test('should throw error when API key is missing', async () => { const serviceWithoutKey = new EmbeddingService(); await expect(serviceWithoutKey.getEmbedding('test')).rejects.toThrow( 'OpenAI API Key is not configured.' ); }); test('should truncate long text', async () => { const longText = 'a'.repeat(10000); const embedding = await service.getEmbedding(longText); expect(embedding).toHaveLength(1536); }); });

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/huiseo/outline-wiki-mcp'

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