UNPKG

@simonecoelhosfo/optimizely-mcp-server

Version:

Optimizely MCP Server for AI assistants with integrated CLI tools

78 lines 2.79 kB
/** * Simple disambiguation test to verify basic functionality */ import { IntelligentQueryEngine } from './IntelligentQueryEngine.js'; import { OptimizelyAdapter } from './adapters/OptimizelyAdapter.js'; import Database from 'better-sqlite3'; async function testSimpleDisambiguation() { console.log('Testing simple field disambiguation...\n'); // Open database const db = new Database('./data/optimizely-cache.db', { readonly: true }); // Initialize engine const engine = new IntelligentQueryEngine({ discovery: { autoDiscover: true, discoveryInterval: 3600000, cacheTTL: 60000 } }); // Create and register adapter const adapter = new OptimizelyAdapter({ database: db }); engine.registerAdapter(adapter); // Wait for discovery await new Promise(resolve => setTimeout(resolve, 500)); // Test 1: Simple query without disambiguation console.log('Test 1: Simple query (should work)'); try { const result = await engine.query({ find: 'flag', select: ['name', 'key'], limit: 5 }); console.log(`Success: ${result.data?.length || 0} rows returned\n`); } catch (error) { console.log(`Error: ${error}\n`); } // Test 2: Query with table prefix console.log('Test 2: Query with table prefix'); try { const result = await engine.query({ find: 'flag', select: ['flag.name', 'flag.key'], limit: 5 }); console.log(`Success: ${result.data?.length || 0} rows returned\n`); } catch (error) { console.log(`Error: ${error}\n`); } // Test 3: Query with field alias console.log('Test 3: Query with field alias'); try { const result = await engine.query({ find: 'flag', select: ['name as flag_name', 'key as flag_key'], limit: 5 }); console.log(`Success: ${result.data?.length || 0} rows returned`); if (result.data && result.data.length > 0) { console.log('First row:', JSON.stringify(result.data[0], null, 2)); } console.log(); } catch (error) { console.log(`Error: ${error}\n`); } // Test 4: Check field catalog contents console.log('Test 4: Field catalog check'); const fieldCatalog = engine.fieldCatalog; const testFields = ['flag.name', 'flag.key', 'event.name', 'event.event_type']; for (const field of testFields) { const fieldInfo = fieldCatalog.getFieldInfo(field); console.log(` ${field}: ${fieldInfo ? 'FOUND' : 'NOT FOUND'}`); } db.close(); } testSimpleDisambiguation().catch(console.error); //# sourceMappingURL=test-simple-disambiguation.js.map