import { DyNTS_AI_Embedding_ServiceBase } from './ai-embedding.service-base'; import { DyFM_DAI_EmbeddingInfo } from '@futdevpro/fsm-dynamo/ai/document-ai'; class TestEmbeddingService extends DyNTS_AI_Embedding_ServiceBase { readonly aiProvider: any = {} as any; readonly capabilities: any = {} as any; setup = (config: any): void => {}; testConnection = async (issuer: string): Promise => true; createEmbedding = async (set: { text: string; model: string; fullResponse?: boolean; issuer: string }): Promise => { return [0.1, 0.2, 0.3]; }; createEmbeddings = async (set: { texts: string[]; model: string; fullResponse?: boolean; issuer: string }): Promise => { return [[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]]; }; getEmbeddingInfo = (model: string): DyFM_DAI_EmbeddingInfo => { return { model: model, } as any; }; static getInstance(): TestEmbeddingService { return TestEmbeddingService.getSingletonInstance(); } } describe('| DyNTS_AI_Embedding_ServiceBase', () => { let service: TestEmbeddingService; beforeEach(() => { service = TestEmbeddingService.getInstance(); }); it('| should be a singleton instance', () => { const instance1 = TestEmbeddingService.getInstance(); const instance2 = TestEmbeddingService.getInstance(); expect(instance1).toBe(instance2); expect(instance1).toBeInstanceOf(TestEmbeddingService); }); describe('| createEmbedding', () => { it('| should create embedding for single text', async () => { const result = await service.createEmbedding({ text: 'Test text', model: 'test-model', issuer: 'issuer-123', }); expect(result).toEqual([0.1, 0.2, 0.3]); }); it('| should accept fullResponse parameter', async () => { const result = await service.createEmbedding({ text: 'Test text', model: 'test-model', fullResponse: true, issuer: 'issuer-123', }); expect(result).toBeDefined(); }); }); describe('| createEmbeddings', () => { it('| should create embeddings for multiple texts', async () => { const result = await service.createEmbeddings({ texts: ['Text 1', 'Text 2'], model: 'test-model', issuer: 'issuer-123', }); expect(result).toEqual([[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]]); }); it('| should accept fullResponse parameter', async () => { const result = await service.createEmbeddings({ texts: ['Text 1'], model: 'test-model', fullResponse: true, issuer: 'issuer-123', }); expect(result).toBeDefined(); }); }); describe('| getEmbeddingInfo', () => { it('| should return embedding info for model', () => { const result = service.getEmbeddingInfo('test-model'); expect(result.model).toBe('test-model'); }); }); });