Files
yunhaifinance/backend/test-subcontractor-payment.js
T

113 lines
3.6 KiB
JavaScript

// 测试分包商收款信息API
const BASE_URL = 'http://localhost:3003/api';
async function testSubcontractorPaymentAPIs() {
console.log('=== 测试分包商收款信息API ===\n');
try {
// 1. 首先获取一个现有的分包商
console.log('1. 获取分包商列表...');
const listRes = await fetch(`${BASE_URL}/subcontractors`);
const listData = await listRes.json();
if (!listData.success || listData.data.length === 0) {
console.log('没有找到分包商,需要先创建测试数据');
return;
}
const subcontractor = listData.data[0];
console.log(`找到分包商: ${subcontractor.name} (ID: ${subcontractor.id})`);
const subcontractorId = subcontractor.id;
// 2. 测试获取分包商收款信息
console.log('\n2. 测试获取分包商收款信息...');
const getRes = await fetch(`${BASE_URL}/subcontractors/${subcontractorId}/payment-infos`);
const getData = await getRes.json();
console.log(`状态: ${getRes.status}`);
console.log(`成功: ${getData.success}`);
console.log(`收款信息数量: ${getData.count || 0}`);
if (getData.data && getData.data.length > 0) {
console.log('收款信息:');
getData.data.forEach((payment, i) => {
console.log(` ${i+1}. ${payment.account_name} - ${payment.bank_name} (${payment.bank_account})`);
});
}
// 3. 测试添加收款信息
console.log('\n3. 测试添加收款信息...');
const newPayment = {
account_name: '测试账户',
bank_account: '1234567890123456',
bank_name: '测试银行',
qr_code: 'https://example.com/qr.png',
is_primary: true
};
const addRes = await fetch(`${BASE_URL}/subcontractors/${subcontractorId}/payment-infos`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(newPayment)
});
const addData = await addRes.json();
console.log(`状态: ${addRes.status}`);
console.log(`成功: ${addData.success}`);
console.log(`消息: ${addData.message}`);
if (addData.data) {
console.log(`添加的收款信息ID: ${addData.data.id}`);
const paymentId = addData.data.id;
// 4. 测试更新收款信息
console.log('\n4. 测试更新收款信息...');
const updatedPayment = {
account_name: '更新后的测试账户',
bank_account: '6543210987654321',
bank_name: '更新银行',
qr_code: 'https://example.com/updated-qr.png',
is_primary: false
};
const updateRes = await fetch(`${BASE_URL}/subcontractors/payment-infos/${paymentId}`, {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(updatedPayment)
});
const updateData = await updateRes.json();
console.log(`状态: ${updateRes.status}`);
console.log(`成功: ${updateData.success}`);
console.log(`消息: ${updateData.message}`);
// 5. 测试删除收款信息
console.log('\n5. 测试删除收款信息...');
const deleteRes = await fetch(`${BASE_URL}/subcontractors/payment-infos/${paymentId}`, {
method: 'DELETE'
});
const deleteData = await deleteRes.json();
console.log(`状态: ${deleteRes.status}`);
console.log(`成功: ${deleteData.success}`);
console.log(`消息: ${deleteData.message}`);
}
console.log('\n=== 测试完成 ===');
} catch (error) {
console.error('测试失败:', error.message);
}
}
// 运行测试
testSubcontractorPaymentAPIs();