const axios = require('axios'); const API_URL = 'http://localhost:3005/api'; async function testUserAdmin() { try { console.log('๐Ÿงช Testing Admin Panel User Management...\n'); console.log('1. Testing admin login...'); const loginResponse = await axios.post(`${API_URL}/auth/login`, { username: 'admin', password: 'ChangeMe123!@#' }); const token = loginResponse.data.data.token.accessToken; console.log('โœ… Admin login successful'); const headers = { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' }; console.log('\n2. Testing user list endpoint...'); const usersResponse = await axios.get(`${API_URL}/admin/users`, { headers }); console.log('โœ… User list fetched successfully'); console.log(` Found ${usersResponse.data.data.length} users`); console.log('\n3. Creating test employee with user account...'); const newEmployee = { firstName: 'AdminTest', lastName: 'User', email: 'admin.test@example.com', department: 'Testing', createUser: true, userRole: 'user' }; const createResponse = await axios.post(`${API_URL}/employees`, newEmployee, { headers }); console.log('โœ… Employee with user account created'); const newUserId = createResponse.data.data.userId; const tempPassword = createResponse.data.data.temporaryPassword; console.log(` User ID: ${newUserId}`); console.log(` Temp Password: ${tempPassword}`); if (newUserId) { console.log('\n4. Testing role change...'); await axios.put(`${API_URL}/admin/users/${newUserId}/role`, { role: 'superuser' }, { headers } ); console.log('โœ… User role changed to superuser'); console.log('\n5. Testing password reset...'); const resetResponse = await axios.post(`${API_URL}/admin/users/${newUserId}/reset-password`, { }, { headers } ); console.log('โœ… Password reset successfully'); console.log(` New temp password: ${resetResponse.data.data.temporaryPassword}`); console.log('\n6. Testing status toggle...'); await axios.put(`${API_URL}/admin/users/${newUserId}/status`, { isActive: false }, { headers } ); console.log('โœ… User deactivated'); await axios.put(`${API_URL}/admin/users/${newUserId}/status`, { isActive: true }, { headers } ); console.log('โœ… User reactivated'); console.log('\n7. Cleaning up - deleting test user...'); await axios.delete(`${API_URL}/admin/users/${newUserId}`, { headers }); console.log('โœ… Test user deleted'); } console.log('\n๐ŸŽ‰ All Admin Panel User Management tests passed!'); } catch (error) { console.error('\nโŒ Test failed:', error.response?.data || error.message); if (error.response?.status) { console.error(` Status: ${error.response.status}`); } } } testUserAdmin();