65 lines
1.8 KiB
JavaScript
65 lines
1.8 KiB
JavaScript
|
|
/**
|
|||
|
|
* 直接测试API
|
|||
|
|
* @file test-direct-api.js
|
|||
|
|
* @description 直接测试智能项圈预警API,不通过HTTP请求
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
const { getCollarAlerts } = require('./controllers/smartCollarAlertController');
|
|||
|
|
|
|||
|
|
async function testDirectApi() {
|
|||
|
|
console.log('🔍 直接测试智能项圈预警API...\n');
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
// 模拟请求对象
|
|||
|
|
const mockReq = {
|
|||
|
|
query: {
|
|||
|
|
page: 1,
|
|||
|
|
limit: 5,
|
|||
|
|
search: '22012000107'
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// 模拟响应对象
|
|||
|
|
const mockRes = {
|
|||
|
|
json: (data) => {
|
|||
|
|
console.log('API响应数据:');
|
|||
|
|
console.log(JSON.stringify(data, null, 2));
|
|||
|
|
|
|||
|
|
if (data.success && data.data) {
|
|||
|
|
const targetCollar = data.data.find(item => item.collarNumber == 22012000107);
|
|||
|
|
if (targetCollar) {
|
|||
|
|
console.log('\n找到项圈22012000107的数据:');
|
|||
|
|
console.log('电量:', targetCollar.battery);
|
|||
|
|
console.log('温度:', targetCollar.temperature);
|
|||
|
|
console.log('预警类型:', targetCollar.alertType);
|
|||
|
|
console.log('预警级别:', targetCollar.alertLevel);
|
|||
|
|
} else {
|
|||
|
|
console.log('\n未找到项圈22012000107的数据');
|
|||
|
|
console.log('可用的项圈编号:');
|
|||
|
|
data.data.forEach(item => {
|
|||
|
|
console.log(`- ${item.collarNumber}`);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
status: (code) => ({
|
|||
|
|
json: (data) => {
|
|||
|
|
console.log('错误响应:', code, data);
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// 调用API函数
|
|||
|
|
await getCollarAlerts(mockReq, mockRes);
|
|||
|
|
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error('❌ 测试失败:', error.message);
|
|||
|
|
console.error('错误详情:', error);
|
|||
|
|
} finally {
|
|||
|
|
process.exit(0);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 运行测试
|
|||
|
|
testDirectApi().catch(console.error);
|