UNPKG

universal-ai-brain

Version:

🧠 UNIVERSAL AI BRAIN 3.3 - The world's most advanced cognitive architecture with 24 specialized systems, MongoDB 8.1 $rankFusion hybrid search, latest Voyage 3.5 embeddings, and framework-agnostic design. Works with Mastra, Vercel AI, LangChain, OpenAI A

176 lines (156 loc) • 5.19 kB
import { SchemaValidator } from '../schemas/validator'; describe('SchemaValidator', () => { describe('agent schema validation', () => { it('should validate a correct agent document', () => { const validAgent = { agent_id: 'test-agent-1', name: 'Test Agent', version: '1.0.0', status: 'active', model_config: { provider: 'openai', model: 'gpt-4' } }; const result = SchemaValidator.validate('agent', validAgent); expect(result.valid).toBe(true); expect(result.errors).toBeUndefined(); }); it('should reject agent with missing required fields', () => { const invalidAgent = { name: 'Test Agent', // Missing agent_id, version, status, model_config }; const result = SchemaValidator.validate('agent', invalidAgent); expect(result.valid).toBe(false); expect(result.errors).toBeDefined(); expect(result.errors!.length).toBeGreaterThan(0); }); it('should reject agent with invalid status', () => { const invalidAgent = { agent_id: 'test-agent-1', name: 'Test Agent', version: '1.0.0', status: 'invalid-status', // Should be 'active', 'inactive', or 'deprecated' model_config: { provider: 'openai', model: 'gpt-4' } }; const result = SchemaValidator.validate('agent', invalidAgent); expect(result.valid).toBe(false); expect(result.errors).toBeDefined(); }); }); describe('agent working memory schema validation', () => { it('should validate a correct working memory document', () => { const validWorkingMemory = { session_id: 'session-123', agent_id: 'agent-456', created_at: new Date().toISOString(), expires_at: new Date(Date.now() + 3600000).toISOString(), context_window: [ { role: 'user', content: 'Hello', timestamp: new Date().toISOString() } ] }; const result = SchemaValidator.validate('agentWorkingMemory', validWorkingMemory); expect(result.valid).toBe(true); }); it('should reject working memory with invalid role', () => { const invalidWorkingMemory = { session_id: 'session-123', agent_id: 'agent-456', created_at: new Date().toISOString(), expires_at: new Date(Date.now() + 3600000).toISOString(), context_window: [ { role: 'invalid-role', // Should be 'user', 'assistant', 'system', or 'tool' content: 'Hello', timestamp: new Date().toISOString() } ] }; const result = SchemaValidator.validate('agentWorkingMemory', invalidWorkingMemory); expect(result.valid).toBe(false); }); }); describe('vector embeddings schema validation', () => { it('should validate a correct vector embedding document', () => { const validEmbedding = { embedding_id: 'emb-123', source_type: 'document', source_id: 'doc-456', embedding: { values: [0.1, 0.2, 0.3], meta: { provider: 'openai', model: 'text-embedding-ada-002', version: '1.0' } }, content: { text: 'This is a test document' } }; const result = SchemaValidator.validate('vectorEmbeddings', validEmbedding); expect(result.valid).toBe(true); }); it('should reject embedding with missing content', () => { const invalidEmbedding = { embedding_id: 'emb-123', source_type: 'document', source_id: 'doc-456', embedding: { values: [0.1, 0.2, 0.3], meta: { provider: 'openai', model: 'text-embedding-ada-002', version: '1.0' } } // Missing content field }; const result = SchemaValidator.validate('vectorEmbeddings', invalidEmbedding); expect(result.valid).toBe(false); }); }); describe('validateOrThrow', () => { it('should not throw for valid data', () => { const validAgent = { agent_id: 'test-agent-1', name: 'Test Agent', version: '1.0.0', status: 'active', model_config: { provider: 'openai', model: 'gpt-4' } }; expect(() => { SchemaValidator.validateOrThrow('agent', validAgent); }).not.toThrow(); }); it('should throw for invalid data', () => { const invalidAgent = { name: 'Test Agent' // Missing required fields }; expect(() => { SchemaValidator.validateOrThrow('agent', invalidAgent); }).toThrow(); }); }); describe('getAvailableSchemas', () => { it('should return list of available schemas', () => { const schemas = SchemaValidator.getAvailableSchemas(); expect(schemas).toContain('agent'); expect(schemas).toContain('agentWorkingMemory'); expect(schemas).toContain('vectorEmbeddings'); expect(schemas.length).toBeGreaterThan(10); }); }); });