// Скрипт для тестирования метода checkPremiumStatus require('dotenv').config(); const { Pool } = require('pg'); // Создаем пул соединений const pool = new Pool({ user: process.env.DB_USERNAME, host: process.env.DB_HOST, database: process.env.DB_NAME, password: process.env.DB_PASSWORD, port: parseInt(process.env.DB_PORT || '5432') }); async function testCheckPremiumMethod() { try { console.log('Тестирование метода checkPremiumStatus...'); // Получаем пользователя для тестирования const userResult = await pool.query(` SELECT id, telegram_id, first_name, username, premium FROM users ORDER BY last_active_at DESC NULLS LAST LIMIT 1 `); if (userResult.rows.length === 0) { console.error('❌ Пользователи не найдены в базе данных'); return; } const user = userResult.rows[0]; console.log(`Выбран тестовый пользователь: ${user.first_name || user.username || 'Без имени'} (Telegram ID: ${user.telegram_id})`); console.log(`Текущий премиум-статус: ${user.premium ? '✅ Активен' : '❌ Не активен'}`); // Проверка работы метода checkPremiumStatus console.log('\nЭмулируем вызов метода checkPremiumStatus из vipService:'); const result = await pool.query(` SELECT id, premium FROM users WHERE telegram_id = $1 `, [user.telegram_id]); if (result.rows.length === 0) { console.log('❌ Пользователь не найден'); } else { const isPremium = result.rows[0].premium || false; console.log(`Результат метода: isPremium = ${isPremium ? '✅ true' : '❌ false'}`); if (!isPremium) { console.log('\nПремиум-статус отсутствует. Устанавливаем премиум...'); await pool.query(` UPDATE users SET premium = true WHERE telegram_id = $1 `, [user.telegram_id]); // Проверяем обновление const updatedResult = await pool.query(` SELECT premium FROM users WHERE telegram_id = $1 `, [user.telegram_id]); const updatedPremium = updatedResult.rows[0].premium; console.log(`Обновленный статус: isPremium = ${updatedPremium ? '✅ true' : '❌ false'}`); } } console.log('\n✅ Тестирование завершено'); console.log('🔧 Теперь проверьте функциональность VIP поиска в боте'); } catch (error) { console.error('❌ Ошибка при тестировании:', error); } finally { await pool.end(); console.log('Соединение с базой данных закрыто'); } } // Запускаем тест testCheckPremiumMethod();