#!/usr/bin/env node
// Тест SQLiteClient в контексте VectorRAGService
import dotenv from 'dotenv';
import { SQLiteClient } from '../dist/rag/sqlite-client.js';
// Загружаем .env файл
dotenv.config();
async function testSQLiteClientVector() {
console.log('🧪 Тестирование SQLiteClient для VectorRAGService...\n');
try {
// Создаем SQLiteClient с тем же путем, что использует VectorRAGService
const sqliteClient = new SQLiteClient('./data/rag.db');
// Тест 1: Инициализация
console.log('🔌 Тест 1: Инициализация SQLiteClient...');
const initResult = await sqliteClient.initialize();
if (initResult.isErr()) {
console.log('❌ Ошибка инициализации:', initResult.error.message);
return;
}
console.log('✅ SQLiteClient инициализирован');
// Тест 2: Проверка подключения
console.log('\n🔍 Тест 2: Проверка подключения...');
const isConnected = await sqliteClient.isConnected();
console.log('Подключение к базе данных:', isConnected);
// Тест 3: Получение статистики
console.log('\n📊 Тест 3: Получение статистики...');
const statsResult = await sqliteClient.getStats();
if (statsResult.isErr()) {
console.log('❌ Ошибка получения статистики:', statsResult.error.message);
} else {
const stats = statsResult.value;
console.log('✅ Статистика получена:');
console.log(` Документов: ${stats.documents}`);
console.log(` Чанков: ${stats.chunks}`);
console.log(` Эмбеддингов: ${stats.embeddings}`);
console.log(` Размер БД: ${(stats.dbSize / 1024).toFixed(2)} KB`);
console.log(` FTS включен: ${stats.ftsEnabled}`);
}
// Тест 4: Проверка таблиц
console.log('\n📋 Тест 4: Проверка таблиц...');
const tablesResult = await sqliteClient.query("SELECT name FROM sqlite_master WHERE type='table'");
if (tablesResult.isErr()) {
console.log('❌ Ошибка получения таблиц:', tablesResult.error.message);
} else {
const tables = tablesResult.value;
console.log('✅ Таблицы в базе данных:');
tables.forEach(table => console.log(` - ${table.name}`));
}
// Закрываем соединение
await sqliteClient.close();
console.log('\n🔒 Соединение с базой данных закрыто');
} catch (error) {
console.error('❌ Ошибка в тесте SQLiteClient:', error.message);
console.error('Детали:', error);
}
}
testSQLiteClientVector().catch(console.error);