This commit is contained in:
2025-07-20 20:43:06 +02:00
parent 0abee5b794
commit 29592c7fc8
93 changed files with 23400 additions and 131 deletions

View File

@ -0,0 +1,68 @@
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);
});