learning_ai_invt_trdg/backend/test_hot_loading.ts

58 lines
2.0 KiB
TypeScript

import { createClient } from '@supabase/supabase-js';
import * as dotenv from 'dotenv';
dotenv.config();
const supabase = createClient(process.env.SUPABASE_URL!, process.env.SUPABASE_KEY!);
async function test() {
const { data: users } = await supabase.from('users').select('user_id, email').limit(1);
if (!users || users.length === 0) {
console.error("No users found");
return;
}
const userId = users[0].user_id;
console.log(`Using User ID: ${userId} (${users[0].email})`);
const testProfileName = `TEST_HOT_LOAD_${Date.now()}`;
console.log(`\n--- 1. Testing INSERT (Dynamic Load) ---`);
const { data: insertData, error: insError } = await supabase.from('trade_profiles').insert([{
user_id: userId,
name: testProfileName,
allocated_capital: 555,
risk_per_trade_percent: 0.5,
symbols: 'BTC/USDT, ETH/USDT',
is_active: true
}]).select();
if (insError) {
console.error("Insert error:", insError);
return;
}
const profileId = insertData[0].id;
console.log(`✅ Profile created: ${profileId}. Bot should log [HOT-LOAD]...`);
// Wait for bot to pick it up
await new Promise(r => setTimeout(r, 5000));
console.log(`\n--- 2. Testing UPDATE (Hot Swap) ---`);
const { error: updError } = await supabase.from('trade_profiles')
.update({ allocated_capital: 999 })
.eq('id', profileId);
if (updError) console.error("Update error:", updError);
else console.log(`✅ Capital updated to 999. Bot should log [HOT-REMOVE] then [HOT-LOAD]...`);
await new Promise(r => setTimeout(r, 5000));
console.log(`\n--- 3. Testing DELETE (Hot Remove) ---`);
const { error: delError } = await supabase.from('trade_profiles')
.delete()
.eq('id', profileId);
if (delError) console.error("Delete error:", delError);
else console.log(`✅ Profile deleted. Bot should log [HOT-REMOVE]...`);
}
test();