备份:修复前完整项目快照 2026-04-19
This commit is contained in:
@@ -0,0 +1,336 @@
|
||||
const axios = require('axios');
|
||||
|
||||
const BASE_URL = 'http://localhost:3002/api';
|
||||
|
||||
async function testAPIs() {
|
||||
console.log('开始测试所有修复的API...\n');
|
||||
|
||||
const results = [];
|
||||
|
||||
// 测试预算报价API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/budget-projects`);
|
||||
results.push({
|
||||
name: '预算报价',
|
||||
endpoint: '/api/budget-projects',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: res.data.data?.length || 0,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 预算报价API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '预算报价',
|
||||
endpoint: '/api/budget-projects',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 预算报价API测试失败:', error.message);
|
||||
}
|
||||
|
||||
// 测试施工管理API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/construction/my-projects`);
|
||||
results.push({
|
||||
name: '施工管理',
|
||||
endpoint: '/api/construction/my-projects',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: res.data.data?.length || 0,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 施工管理API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '施工管理',
|
||||
endpoint: '/api/construction/my-projects',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 施工管理API测试失败:', error.message);
|
||||
}
|
||||
|
||||
// 测试预支款API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/advances`);
|
||||
results.push({
|
||||
name: '预支款',
|
||||
endpoint: '/api/advances',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: res.data.data?.length || 0,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 预支款API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '预支款',
|
||||
endpoint: '/api/advances',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 预支款API测试失败:', error.message);
|
||||
}
|
||||
|
||||
// 测试报销API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/reimbursements`);
|
||||
results.push({
|
||||
name: '报销',
|
||||
endpoint: '/api/reimbursements',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: res.data.data?.length || 0,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 报销API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '报销',
|
||||
endpoint: '/api/reimbursements',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 报销API测试失败:', error.message);
|
||||
}
|
||||
|
||||
// 测试付款申请API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/payment-requests`);
|
||||
results.push({
|
||||
name: '付款申请',
|
||||
endpoint: '/api/payment-requests',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: res.data.data?.length || 0,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 付款申请API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '付款申请',
|
||||
endpoint: '/api/payment-requests',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 付款申请API测试失败:', error.message);
|
||||
}
|
||||
|
||||
// 测试核销API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/verifications`);
|
||||
results.push({
|
||||
name: '核销',
|
||||
endpoint: '/api/verifications',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: res.data.data?.length || 0,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 核销API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '核销',
|
||||
endpoint: '/api/verifications',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 核销API测试失败:', error.message);
|
||||
}
|
||||
|
||||
// 测试采购申请API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/purchase-requests`);
|
||||
results.push({
|
||||
name: '采购申请',
|
||||
endpoint: '/api/purchase-requests',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: res.data.data?.length || 0,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 采购申请API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '采购申请',
|
||||
endpoint: '/api/purchase-requests',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 采购申请API测试失败:', error.message);
|
||||
}
|
||||
|
||||
// 测试汇率最新API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/exchange-rates/latest`);
|
||||
results.push({
|
||||
name: '汇率最新',
|
||||
endpoint: '/api/exchange-rates/latest',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: Object.keys(res.data.data || {}).length,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 汇率最新API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '汇率最新',
|
||||
endpoint: '/api/exchange-rates/latest',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 汇率最新API测试失败:', error.message);
|
||||
}
|
||||
|
||||
// 测试汇率历史API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/exchange-rates/history`);
|
||||
results.push({
|
||||
name: '汇率历史',
|
||||
endpoint: '/api/exchange-rates/history',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: res.data.data?.length || 0,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 汇率历史API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '汇率历史',
|
||||
endpoint: '/api/exchange-rates/history',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 汇率历史API测试失败:', error.message);
|
||||
}
|
||||
|
||||
// 测试项目API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/projects`);
|
||||
results.push({
|
||||
name: '项目',
|
||||
endpoint: '/api/projects',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: res.data.data?.length || 0,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 项目API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '项目',
|
||||
endpoint: '/api/projects',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 项目API测试失败:', error.message);
|
||||
}
|
||||
|
||||
// 测试分包商API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/subcontractors`);
|
||||
results.push({
|
||||
name: '分包商',
|
||||
endpoint: '/api/subcontractors',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: res.data.data?.length || 0,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 分包商API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '分包商',
|
||||
endpoint: '/api/subcontractors',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 分包商API测试失败:', error.message);
|
||||
}
|
||||
|
||||
// 测试供应商API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/suppliers`);
|
||||
results.push({
|
||||
name: '供应商',
|
||||
endpoint: '/api/suppliers',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: res.data.data?.length || 0,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 供应商API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '供应商',
|
||||
endpoint: '/api/suppliers',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 供应商API测试失败:', error.message);
|
||||
}
|
||||
|
||||
// 测试客户API
|
||||
try {
|
||||
const res = await axios.get(`${BASE_URL}/customers`);
|
||||
results.push({
|
||||
name: '客户',
|
||||
endpoint: '/api/customers',
|
||||
status: res.status,
|
||||
success: res.data.success,
|
||||
dataCount: res.data.data?.length || 0,
|
||||
error: null
|
||||
});
|
||||
console.log('✅ 客户API测试成功');
|
||||
} catch (error) {
|
||||
results.push({
|
||||
name: '客户',
|
||||
endpoint: '/api/customers',
|
||||
status: error.response?.status || 'N/A',
|
||||
success: false,
|
||||
error: error.message
|
||||
});
|
||||
console.log('❌ 客户API测试失败:', error.message);
|
||||
}
|
||||
|
||||
console.log('\n========================================');
|
||||
console.log('测试结果汇总:');
|
||||
console.log('========================================\n');
|
||||
|
||||
results.forEach(result => {
|
||||
const status = result.success ? '✅ 成功' : '❌ 失败';
|
||||
console.log(`${status} | ${result.name}`);
|
||||
console.log(` 端点: ${result.endpoint}`);
|
||||
console.log(` 状态码: ${result.status}`);
|
||||
if (result.success) {
|
||||
console.log(` 数据量: ${result.dataCount}`);
|
||||
} else {
|
||||
console.log(` 错误: ${result.error}`);
|
||||
}
|
||||
console.log('');
|
||||
});
|
||||
|
||||
const successCount = results.filter(r => r.success).length;
|
||||
const failCount = results.filter(r => !r.success).length;
|
||||
|
||||
console.log('========================================');
|
||||
console.log(`总计: ${results.length}个API`);
|
||||
console.log(`成功: ${successCount}个`);
|
||||
console.log(`失败: ${failCount}个`);
|
||||
console.log('========================================');
|
||||
}
|
||||
|
||||
testAPIs().catch(console.error);
|
||||
Reference in New Issue
Block a user