Files
张翔 d2cef85187 docs: add test report and database reset scripts
- 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
2026-04-23 16:36:12 +08:00

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();