87 Zeilen
2.6 KiB
JavaScript
87 Zeilen
2.6 KiB
JavaScript
const axios = require('axios');
|
|
|
|
const API_URL = 'http://localhost:3004/api';
|
|
|
|
async function testCreateEmployee() {
|
|
try {
|
|
console.log('=== Testing Employee Creation with User Account ===\n');
|
|
|
|
// First login as admin
|
|
console.log('1. Logging in as admin...');
|
|
const loginResponse = await axios.post(`${API_URL}/auth/login`, {
|
|
username: 'admin',
|
|
password: 'admin123'
|
|
});
|
|
|
|
const token = loginResponse.data.token;
|
|
console.log('✓ Login successful, token received\n');
|
|
|
|
// Create a new employee with user account
|
|
console.log('2. Creating new employee with superuser account...');
|
|
const employeeData = {
|
|
firstName: 'Max',
|
|
lastName: 'Mustermann',
|
|
email: 'max.mustermann@test.com',
|
|
department: 'IT',
|
|
userRole: 'superuser',
|
|
createUser: true
|
|
};
|
|
|
|
const createResponse = await axios.post(
|
|
`${API_URL}/employees`,
|
|
employeeData,
|
|
{
|
|
headers: {
|
|
'Authorization': `Bearer ${token}`,
|
|
'Content-Type': 'application/json'
|
|
}
|
|
}
|
|
);
|
|
|
|
console.log('✓ Employee created successfully!');
|
|
console.log('Response:', JSON.stringify(createResponse.data, null, 2));
|
|
|
|
if (createResponse.data.data?.temporaryPassword) {
|
|
console.log('\n=== IMPORTANT ===');
|
|
console.log('Temporary Password:', createResponse.data.data.temporaryPassword);
|
|
console.log('Employee ID:', createResponse.data.data.id);
|
|
console.log('User ID:', createResponse.data.data.userId);
|
|
console.log('=================\n');
|
|
}
|
|
|
|
// Try to fetch users to verify decryption works
|
|
console.log('3. Fetching users list to verify decryption...');
|
|
const usersResponse = await axios.get(
|
|
`${API_URL}/admin/users`,
|
|
{
|
|
headers: {
|
|
'Authorization': `Bearer ${token}`
|
|
}
|
|
}
|
|
);
|
|
|
|
console.log('✓ Users fetched successfully!');
|
|
console.log('Total users:', usersResponse.data.data.length);
|
|
|
|
const newUser = usersResponse.data.data.find(u => u.email === employeeData.email);
|
|
if (newUser) {
|
|
console.log('✓ New user found in list:', {
|
|
username: newUser.username,
|
|
email: newUser.email,
|
|
role: newUser.role
|
|
});
|
|
}
|
|
|
|
console.log('\n✓ All tests passed successfully!');
|
|
|
|
} catch (error) {
|
|
console.error('\n✗ Test failed:', error.response?.data || error.message);
|
|
if (error.response?.data?.error?.details) {
|
|
console.error('Validation errors:', error.response.data.error.details);
|
|
}
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
// Run the test
|
|
testCreateEmployee(); |