Files
yunhaifinance/backend/test-apis.js
T

336 lines
9.3 KiB
JavaScript

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