minishouyin/test/test-full-checkout.js
2025-11-12 11:35:57 +08:00

71 lines
1.9 KiB
JavaScript
Raw 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.

const axios = require('axios');
const fs = require('fs');
const path = require('path');
// 读取服务器端口
function getServerPort() {
try {
const portFile = path.join(__dirname, 'data', 'server-port.json');
if (fs.existsSync(portFile)) {
const portData = JSON.parse(fs.readFileSync(portFile, 'utf8'));
return portData.port || 3001;
}
} catch (error) {
console.log('读取端口文件失败:', error.message);
}
return 3001;
}
async function testFullCheckout() {
const port = getServerPort();
const baseURL = `http://localhost:${port}/api`;
console.log('开始测试完整结账流程...');
console.log('服务器地址:', baseURL);
try {
// 1. 登录获取用户信息
console.log('\n1. 尝试登录...');
const loginResponse = await axios.post(`${baseURL}/cashiers/login`, {
username: 'cashier1',
password: 'cashier123'
});
console.log('登录成功:', loginResponse.data);
const userInfo = loginResponse.data;
// 2. 创建订单
console.log('\n2. 创建订单...');
const orderData = {
items: [
{
product_id: 1,
quantity: 2
}
],
payment_method: 'cash',
cashier_id: userInfo.id,
paid_amount: 20,
discount_amount: 0
};
console.log('订单数据:', JSON.stringify(orderData, null, 2));
const orderResponse = await axios.post(`${baseURL}/orders`, orderData);
console.log('订单创建成功:', orderResponse.data);
console.log('\n测试完成');
} catch (error) {
console.error('\n测试失败:');
if (error.response) {
console.error('响应状态:', error.response.status);
console.error('响应数据:', error.response.data);
} else if (error.request) {
console.error('请求失败:', error.message);
} else {
console.error('错误:', error.message);
}
}
}
testFullCheckout();