d2cef85187
- Add comprehensive test report (TEST_REPORT.md) - Add database reset scripts for testing - Update .gitignore to exclude temporary files - Add frontend e2e test utilities and configuration
73 lines
2.4 KiB
JavaScript
73 lines
2.4 KiB
JavaScript
const CryptoJS = require('crypto-js');
|
|
const axios = require('axios');
|
|
|
|
function makeSignatureHeaders(method, url) {
|
|
const timestamp = Date.now();
|
|
const nonce = timestamp + '-' + Math.random().toString(36).substring(2, 15);
|
|
|
|
let path = url;
|
|
let query = '';
|
|
const queryIndex = url.indexOf('?');
|
|
if (queryIndex !== -1) {
|
|
path = url.substring(0, queryIndex);
|
|
query = url.substring(queryIndex + 1);
|
|
}
|
|
|
|
const stringToSign = [method, path, query, '', timestamp, nonce].join('\n');
|
|
const signature = CryptoJS.HmacSHA256(stringToSign, 'NovalonManageSystemSecretKey2026');
|
|
const signatureBase64 = CryptoJS.enc.Base64.stringify(signature);
|
|
return {
|
|
'X-Signature': signatureBase64,
|
|
'X-Timestamp': timestamp.toString(),
|
|
'X-Nonce': nonce
|
|
};
|
|
}
|
|
|
|
async function test() {
|
|
try {
|
|
const loginRes = await axios.post('http://localhost:3002/api/auth/login', {
|
|
username: 'admin',
|
|
password: 'Test@123'
|
|
});
|
|
const token = loginRes.data.token;
|
|
console.log('Login OK, token:', token ? token.substring(0, 30) + '...' : 'NONE');
|
|
|
|
const sigHeaders = makeSignatureHeaders('POST', '/api/roles');
|
|
const roleRes = await axios.post('http://localhost:3002/api/roles', {
|
|
roleName: 'TestRole_' + Date.now(),
|
|
roleKey: 'test_' + Date.now(),
|
|
roleSort: 99,
|
|
status: 1
|
|
}, {
|
|
headers: {
|
|
'Authorization': 'Bearer ' + token,
|
|
...sigHeaders
|
|
}
|
|
});
|
|
console.log('Create role status:', roleRes.status);
|
|
|
|
await new Promise(r => setTimeout(r, 2000));
|
|
|
|
const logSigHeaders = makeSignatureHeaders('GET', '/api/logs/operation/page?page=0&size=10');
|
|
const logRes = await axios.get('http://localhost:3002/api/logs/operation/page?page=0&size=10', {
|
|
headers: {
|
|
'Authorization': 'Bearer ' + token,
|
|
...logSigHeaders
|
|
}
|
|
});
|
|
console.log('Operation logs total:', logRes.data.totalElements || logRes.data.total || 'unknown');
|
|
const content = logRes.data.content || logRes.data.data || [];
|
|
console.log('Log entries:', content.length);
|
|
if (content.length > 0) {
|
|
console.log('First log:', JSON.stringify(content[0]).substring(0, 300));
|
|
} else {
|
|
console.log('Log response keys:', Object.keys(logRes.data));
|
|
console.log('Log response:', JSON.stringify(logRes.data).substring(0, 500));
|
|
}
|
|
} catch (e) {
|
|
console.error('Error:', e.response ? JSON.stringify(e.response.data) : e.message);
|
|
}
|
|
}
|
|
|
|
test();
|