001project_wildgrowth/backend/scripts/verify-call-records-api.js

52 lines
1.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env node
/**
* 调用记录 API 可用性验证(部署后执行)
* 用法: node scripts/verify-call-records-api.js [BASE_URL]
* 默认: http://localhost:3000
* 成功: exit 0失败: exit 1
*/
const baseUrl = process.argv[2] || 'http://localhost:3000';
const url = `${baseUrl.replace(/\/$/, '')}/api/admin/generation-tasks?page=1&pageSize=5`;
function main() {
const http = require(baseUrl.startsWith('https') ? 'https' : 'http');
const u = new URL(url);
const options = { hostname: u.hostname, port: u.port || (u.protocol === 'https:' ? 443 : 80), path: u.pathname + u.search, method: 'GET' };
const req = http.request(options, (res) => {
let body = '';
res.on('data', (ch) => { body += ch; });
res.on('end', () => {
if (res.statusCode !== 200) {
console.error('FAIL: status', res.statusCode, body.slice(0, 200));
process.exit(1);
}
try {
const data = JSON.parse(body);
if (!data.success || !Array.isArray(data.data?.list)) {
console.error('FAIL: response shape', JSON.stringify(data).slice(0, 300));
process.exit(1);
}
if (!data.data.pagination || typeof data.data.pagination.total !== 'number') {
console.error('FAIL: missing pagination');
process.exit(1);
}
console.log('OK: 调用记录 API 可用', data.data.list.length, '条本页, 共', data.data.pagination.total, '条');
process.exit(0);
} catch (e) {
console.error('FAIL: parse', e.message);
process.exit(1);
}
});
});
req.on('error', (e) => {
console.error('FAIL: request', e.message);
process.exit(1);
});
req.setTimeout(10000, () => { req.destroy(); process.exit(1); });
req.end();
}
main();