-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest-email-verification-disabled.js
More file actions
99 lines (83 loc) · 3.57 KB
/
test-email-verification-disabled.js
File metadata and controls
99 lines (83 loc) · 3.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/usr/bin/env node
const axios = require('axios');
// Configuration
const API_BASE = 'http://localhost:3000';
const TEST_EMAIL = `test_${Date.now()}@example.com`;
const TEST_PASSWORD = 'TestPass123!';
const TEST_NAME = 'Test User';
// Test function to verify email verification is disabled
async function testEmailVerificationDisabled() {
console.log('Testing email verification is disabled...');
console.log('========================================');
try {
// Test 1: User Registration
console.log('\n1. Testing User Registration...');
const registerResponse = await axios.post(`${API_BASE}/api/auth/register`, {
name: TEST_NAME,
email: TEST_EMAIL,
password: TEST_PASSWORD
});
console.log('✅ Registration successful');
console.log(' Response status:', registerResponse.status);
console.log(' Response message:', registerResponse.data.message);
// Verify user is created with verified status
const registeredUser = registerResponse.data.data.user;
console.log(' User verification status:', registeredUser.verificationStatus);
console.log(' Verified at:', registeredUser.verifiedAt);
console.log(' Verification token:', registeredUser.verificationToken);
if (registeredUser.verificationStatus !== 'verified') {
throw new Error('❌ User not created with verified status');
}
if (!registeredUser.verifiedAt) {
throw new Error('❌ User not created with verifiedAt timestamp');
}
if (registeredUser.verificationToken) {
throw new Error('❌ User created with verification token');
}
// Test 2: User Login (should work without email verification)
console.log('\n2. Testing User Login (without email verification)...');
const loginResponse = await axios.post(`${API_BASE}/api/auth/login`, {
email: TEST_EMAIL,
password: TEST_PASSWORD
});
console.log('✅ Login successful');
console.log(' Response status:', loginResponse.status);
console.log(' Response message:', loginResponse.data.message);
const { token, refreshToken, user } = loginResponse.data.data;
console.log(' Token received:', token ? 'Yes' : 'No');
console.log(' Refresh token received:', refreshToken ? 'Yes' : 'No');
console.log(' User ID:', user.id);
// Test 3: Validate Token
console.log('\n3. Testing Token Validation...');
const validateResponse = await axios.get(`${API_BASE}/api/auth/validate`, {
headers: {
'Authorization': `Bearer ${token}`
}
});
console.log('✅ Token validation successful');
console.log(' Response status:', validateResponse.status);
// Summary
console.log('\n========================================');
console.log('✅ Email verification has been successfully disabled!');
console.log(' - Users are created with verified status');
console.log(' - Login works without email verification');
console.log(' - No verification tokens are generated');
console.log(' - Users can immediately access the system after registration');
} catch (error) {
console.error('\n❌ Test failed:');
if (error.response) {
console.error(` Status: ${error.response.status}`);
console.error(` Data: ${JSON.stringify(error.response.data, null, 2)}`);
} else if (error.request) {
console.error(' No response received from server');
} else {
console.error(` ${error.message}`);
}
process.exit(1);
}
}
// Run the tests
if (require.main === module) {
testEmailVerificationDisabled();
}
module.exports = testEmailVerificationDisabled;