const emailService = require('./src/services/EmailService'); require('dotenv').config(); async function testEmailService() { console.log('Testing Email Service...\n'); // Test 1: Check service status console.log('1. Checking service status:'); const status = emailService.getStatus(); console.log('Status:', status); console.log('Configured:', status.configured); // Test 2: Test configuration console.log('\n2. Testing configuration:'); try { const configTest = await emailService.testConfiguration(); console.log('Configuration test result:', configTest); } catch (error) { console.log('Configuration test failed:', error.message); } // Test 3: Generate tokens console.log('\n3. Testing token generation:'); const verificationToken = emailService.generateSecureToken(); console.log('Verification token length:', verificationToken.length); console.log('Verification token sample:', verificationToken.substring(0, 16) + '...'); const resetTokenData = emailService.generateResetToken(1); console.log('Reset token length:', resetTokenData.token.length); console.log('Reset token expires:', resetTokenData.expires); console.log('Reset token sample:', resetTokenData.token.substring(0, 16) + '...'); // Test 4: Create email templates console.log('\n4. Testing email templates:'); const verificationTemplate = emailService.createVerificationEmailTemplate('test@example.com', verificationToken); console.log('Verification email subject:', verificationTemplate.subject); console.log('Verification email has HTML:', !!verificationTemplate.html); console.log('Verification email has text:', !!verificationTemplate.text); const resetTemplate = emailService.createPasswordResetEmailTemplate('test@example.com', resetTokenData.token); console.log('Reset email subject:', resetTemplate.subject); console.log('Reset email has HTML:', !!resetTemplate.html); console.log('Reset email has text:', !!resetTemplate.text); // Test 5: Simulate email sending (without actually sending) console.log('\n5. Email service methods available:'); console.log('- sendVerificationEmail:', typeof emailService.sendVerificationEmail); console.log('- sendPasswordResetEmail:', typeof emailService.sendPasswordResetEmail); console.log('- sendNotificationEmail:', typeof emailService.sendNotificationEmail); console.log('\n✅ Email service tests completed successfully!'); // Note about actual email sending if (!status.configured) { console.log('\n⚠️ Note: Email service is not configured. To test actual email sending:'); console.log(' 1. Set up EMAIL_* environment variables in .env file'); console.log(' 2. Use a valid SMTP service (Gmail, SendGrid, etc.)'); console.log(' 3. Run the service with proper credentials'); } else { console.log('\n✅ Email service is configured and ready to send emails!'); } } // Run the test testEmailService().catch(error => { console.error('Test failed:', error); process.exit(1); });