Files

45 lines
1.6 KiB
JavaScript

import { connectMongo, disconnectMongo } from '../src/data/mongo.js';
import { leadTools } from '../src/tools/crm/leads.tools.js';
import { analyticsTools } from '../src/tools/crm/analytics.tools.js';
await connectMongo();
const ctx = {
configurable: {
user: { id: '000000000000000000000000', name: 'Smoke Admin', role: 'admin' },
sessionId: 'smoke', traceId: 'smoke', channel: 'crm_chat', runtime: {},
},
};
const cases = [
['search_leads', { lead_tag: 'hot', limit: 3 }],
['lead_funnel_breakdown', { group_by: 'current_stage', date_range: 'all_time' }],
['lead_trend', { date_range: 'last_30_days', bucket: 'week' }],
['find_stale_leads', { inactive_days: 30, limit: 3 }],
['business_snapshot', { date_range: 'last_30_days' }],
['conversion_funnel', { date_range: 'last_90_days' }],
['team_performance', { date_range: 'last_90_days' }],
['source_effectiveness', { date_range: 'last_90_days' }],
['activity_analytics', { date_range: 'last_7_days' }],
['enrollment_report', { date_range: 'last_90_days' }],
];
const all = [...leadTools, ...analyticsTools];
for (const [name, args] of cases) {
const t = all.find((x) => x.name === name);
if (!t) { console.log(`?? ${name} NOT FOUND`); continue; }
const started = Date.now();
try {
const out = await t.invoke(args, ctx);
const parsed = JSON.parse(out);
const ok = parsed.ok !== false;
const preview = JSON.stringify(parsed.data ?? parsed).slice(0, 220);
console.log(`${ok ? 'PASS' : 'FAIL'} ${name} (${Date.now() - started}ms) ${preview}`);
} catch (e) {
console.log(`ERR ${name}: ${e.message}`);
}
}
await disconnectMongo();
process.exit(0);