feat: новая функция

This commit is contained in:
2025-10-08 18:01:14 +03:00
parent 2c53bce32a
commit 725e7fd5a2
60 changed files with 5427 additions and 3921 deletions

View File

@@ -0,0 +1,213 @@
/**
* Copyright (c) 2024-2025 Тарабанов Александр Викторович
* All rights reserved.
*
* This software is proprietary and confidential.
* Unauthorized copying, modification, or distribution is prohibited.
*
* For licensing inquiries: info@hb3-accelerator.com
* Website: https://hb3-accelerator.com
* GitHub: https://github.com/HB3-ACCELERATOR
*/
const logger = require('../utils/logger');
const botManager = require('./botManager');
const WebBot = require('./webBot');
const TelegramBot = require('./telegramBot');
const EmailBot = require('./emailBot');
/**
* Тестовый скрипт для проверки новой архитектуры ботов
* Используется для отладки и тестирования ботов
*/
/**
* Тест Web Bot
*/
async function testWebBot() {
console.log('\n=== ТЕСТ WEB BOT ===');
try {
const webBot = new WebBot();
// Инициализация
const initResult = await webBot.initialize();
console.log('✓ Инициализация:', initResult);
// Статус
const status = webBot.getStatus();
console.log('✓ Статус:', status);
// Тестовое сообщение
const testMessage = {
userId: 1,
content: 'Тестовое сообщение',
channel: 'web'
};
console.log('✓ Web Bot тест пройден');
return true;
} catch (error) {
console.error('✗ Ошибка Web Bot:', error.message);
return false;
}
}
/**
* Тест Telegram Bot
*/
async function testTelegramBot() {
console.log('\n=== ТЕСТ TELEGRAM BOT ===');
try {
const telegramBot = new TelegramBot();
// Инициализация
const initResult = await telegramBot.initialize();
console.log('✓ Инициализация:', initResult);
// Статус
const status = telegramBot.getStatus ? telegramBot.getStatus() : {
isInitialized: telegramBot.isInitialized,
status: telegramBot.status
};
console.log('✓ Статус:', status);
console.log('✓ Telegram Bot тест пройден');
return true;
} catch (error) {
console.error('✗ Ошибка Telegram Bot:', error.message);
return false;
}
}
/**
* Тест Email Bot
*/
async function testEmailBot() {
console.log('\n=== ТЕСТ EMAIL BOT ===');
try {
const emailBot = new EmailBot();
// Инициализация
const initResult = await emailBot.initialize();
console.log('✓ Инициализация:', initResult);
// Статус
const status = emailBot.getStatus ? emailBot.getStatus() : {
isInitialized: emailBot.isInitialized,
status: emailBot.status
};
console.log('✓ Статус:', status);
console.log('✓ Email Bot тест пройден');
return true;
} catch (error) {
console.error('✗ Ошибка Email Bot:', error.message);
return false;
}
}
/**
* Тест Bot Manager
*/
async function testBotManager() {
console.log('\n=== ТЕСТ BOT MANAGER ===');
try {
// Инициализация
await botManager.initialize();
console.log('✓ BotManager инициализирован');
// Проверка готовности
const isReady = botManager.isReady();
console.log('✓ isReady:', isReady);
// Получение статуса
const status = botManager.getStatus();
console.log('✓ Статус всех ботов:', status);
// Получение конкретных ботов
const webBot = botManager.getBot('web');
const telegramBot = botManager.getBot('telegram');
const emailBot = botManager.getBot('email');
console.log('✓ Web Bot:', webBot ? 'OK' : 'NOT FOUND');
console.log('✓ Telegram Bot:', telegramBot ? 'OK' : 'NOT FOUND');
console.log('✓ Email Bot:', emailBot ? 'OK' : 'NOT FOUND');
console.log('✓ Bot Manager тест пройден');
return true;
} catch (error) {
console.error('✗ Ошибка Bot Manager:', error.message);
return false;
}
}
/**
* Запустить все тесты
*/
async function runAllTests() {
console.log('╔═══════════════════════════════════════╗');
console.log('║ ТЕСТИРОВАНИЕ НОВОЙ АРХИТЕКТУРЫ БОТОВ ║');
console.log('╚═══════════════════════════════════════╝');
const results = {
webBot: false,
telegramBot: false,
emailBot: false,
botManager: false
};
try {
// Тестируем каждый компонент
results.webBot = await testWebBot();
results.telegramBot = await testTelegramBot();
results.emailBot = await testEmailBot();
results.botManager = await testBotManager();
// Итоги
console.log('\n╔═══════════════════════════════════════╗');
console.log('║ ИТОГИ ТЕСТИРОВАНИЯ ║');
console.log('╚═══════════════════════════════════════╝');
console.log('Web Bot: ', results.webBot ? '✓ PASS' : '✗ FAIL');
console.log('Telegram Bot: ', results.telegramBot ? '✓ PASS' : '✗ FAIL');
console.log('Email Bot: ', results.emailBot ? '✓ PASS' : '✗ FAIL');
console.log('Bot Manager: ', results.botManager ? '✓ PASS' : '✗ FAIL');
const allPassed = Object.values(results).every(r => r === true);
console.log('\nОБЩИЙ РЕЗУЛЬТАТ:', allPassed ? '✓ ВСЕ ТЕСТЫ ПРОЙДЕНЫ' : '✗ ЕСТЬ ОШИБКИ');
return allPassed;
} catch (error) {
logger.error('[TestNewBots] Критическая ошибка:', error);
return false;
}
}
// Если запущен напрямую как скрипт
if (require.main === module) {
runAllTests()
.then(success => {
process.exit(success ? 0 : 1);
})
.catch(error => {
console.error('КРИТИЧЕСКАЯ ОШИБКА:', error);
process.exit(1);
});
}
module.exports = {
testWebBot,
testTelegramBot,
testEmailBot,
testBotManager,
runAllTests
};