@simonecoelhosfo/optimizely-mcp-server
Version:
Optimizely MCP Server for AI assistants with integrated CLI tools
63 lines • 2.16 kB
JavaScript
/**
* Test field catalog discovery
*/
import { IntelligentQueryEngine } from './IntelligentQueryEngine.js';
import { OptimizelyAdapter } from './adapters/OptimizelyAdapter.js';
import Database from 'better-sqlite3';
async function testFieldDiscovery() {
console.log('Testing field catalog discovery...\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 a moment for discovery
await new Promise(resolve => setTimeout(resolve, 1000));
// Test field lookups
const testFields = [
'flags.name',
'flags.key',
'flags.archived',
'events.name',
'events.event_type',
'variations.name',
'flag_environments.environment_key'
];
console.log('Testing field lookups:');
for (const field of testFields) {
try {
// Access private fieldCatalog through the engine
const fieldCatalog = engine.fieldCatalog;
const fieldInfo = fieldCatalog.getFieldInfo(field);
console.log(`${field}: ${fieldInfo ? 'FOUND' : 'NOT FOUND'}`);
}
catch (error) {
console.log(`${field}: ERROR - ${error}`);
}
}
// Check catalog size
const fieldCatalog = engine.fieldCatalog;
const catalogSize = fieldCatalog.catalog?.size || 0;
console.log(`\nTotal fields in catalog: ${catalogSize}`);
// List first 10 fields
if (catalogSize > 0) {
console.log('\nFirst 10 fields:');
let count = 0;
for (const [key, value] of fieldCatalog.catalog.entries()) {
console.log(` ${key}`);
if (++count >= 10)
break;
}
}
db.close();
}
testFieldDiscovery().catch(console.error);
//# sourceMappingURL=test-field-catalog-discovery.js.map