import { AIAnalysisRule } from '../src/strategies/rules/AIAnalysisRule.js'; import { MarketContext, SignalDirection } from '../src/strategies/rules/types.js'; import logger from '../src/utils/logger.js'; import * as dotenv from 'dotenv'; dotenv.config(); async function testAICache() { console.log("--- 🧠 TESTING AI CACHING & NON-BLOCKING LOGIC ---"); const aiRule = new AIAnalysisRule(); const mockContext: MarketContext = { symbol: 'BTC/USDT', candles4h: [], candles1h: [], candles15m: [], currentPrice: 100000, change24h: 0, changeToday: 0, session: 'NY', isMajorSession: true, volatility: 'Low', latestSignal: SignalDirection.NONE }; console.log("\n1. Running FIRST check (Should be 'Fresh')..."); const result1 = await aiRule.check(mockContext); console.log("Result 1:", result1.reason); console.log("Passed (Should be true):", result1.passed); console.log("\n2. Running SECOND check (Should be 'Cached')..."); const result2 = await aiRule.check(mockContext); console.log("Result 2:", result2.reason); console.log("Passed (Should be true):", result2.passed); if (result2.reason?.includes('[Cached]')) { console.log("\n✅ SUCCESS: Cache working correctly."); } else { console.error("\n❌ FAILED: Cache not working as expected."); } console.log("\n--- ✨ TEST COMPLETE ---"); } testAICache().catch(console.error);