WIP
This commit is contained in:
68
backend/tests/test-email-service.js
Normal file
68
backend/tests/test-email-service.js
Normal 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);
|
||||
});
|
||||
Reference in New Issue
Block a user