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
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
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();
|
||||
Reference in New Issue
Block a user