focus-product-extractor2
Version:
Extract product information from chat/order data
211 lines (209 loc) • 5.29 kB
JavaScript
;
var _index = _interopRequireDefault(require("../index.js"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
// 测试卡片数据处理逻辑的用例
const cardDataTestCases = [{
name: "订单卡片 - 只有URL,应该返回null",
data: {
"scene": "chat",
"platform": "shopee",
"shopId": "test_shop",
"rawData": {
"messages": [{
"sender": "system",
"timestamp": 1630000000,
"message": {
"card_msg": {
"data": [{
"orders": {
"list": [{
"wareUrl": "https://item.taobao.com/item.htm?id=123456"
}],
"type": 5
}
}]
},
"order_id": "",
"sku_id": "",
"spu_id": "",
"sub_type": 4,
"type": 1
}
}]
}
},
expected: {
noResult: true
}
}, {
name: "商品卡片 - 只有URL,应该返回null",
data: {
"scene": "chat",
"platform": "shopee",
"shopId": "test_shop",
"rawData": {
"messages": [{
"sender": "system",
"timestamp": 1630000000,
"message": {
"card_msg": {
"data": [{
"wares": {
"list": [{
"wareUrl": "https://item.taobao.com/item.htm?id=789012"
}],
"type": 4
}
}]
},
"order_id": "",
"sku_id": "",
"spu_id": "",
"sub_type": 4,
"type": 1
}
}]
}
},
expected: {
noResult: true
}
}, {
name: "订单卡片 - 有文本内容,应该返回order类型",
data: {
"scene": "chat",
"platform": "shopee",
"shopId": "test_shop",
"rawData": {
"messages": [{
"sender": "system",
"timestamp": 1630000000,
"message": {
"card_msg": {
"data": [{
"orders": {
"list": [{
"title": "订单 #12345",
"desc": "订单描述"
}],
"type": 5
}
}]
},
"order_id": "",
"sku_id": "",
"spu_id": "",
"sub_type": 4,
"type": 1
}
}]
}
},
expected: {
hasResult: true,
type: "order"
}
}, {
name: "商品卡片 - 有文本内容,应该返回sku类型",
data: {
"scene": "chat",
"platform": "shopee",
"shopId": "test_shop",
"rawData": {
"messages": [{
"sender": "system",
"timestamp": 1630000000,
"message": {
"card_msg": {
"data": [{
"wares": {
"list": [{
"title": "商品名称",
"desc": "商品描述"
}],
"type": 4
}
}]
},
"order_id": "",
"sku_id": "",
"spu_id": "",
"sub_type": 4,
"type": 1
}
}]
}
},
expected: {
hasResult: true,
type: "sku"
}
}, {
name: "混合卡片 - URL和文本混合,应该返回sku类型",
data: {
"scene": "chat",
"platform": "shopee",
"shopId": "test_shop",
"rawData": {
"messages": [{
"sender": "system",
"timestamp": 1630000000,
"message": {
"card_msg": {
"data": [{
"wares": {
"list": [{
"title": "商品名称",
"wareUrl": "https://item.taobao.com/item.htm?id=789012"
}],
"type": 4
}
}]
},
"order_id": "",
"sku_id": "",
"spu_id": "",
"sub_type": 4,
"type": 1
}
}]
}
},
expected: {
hasResult: true,
type: "sku"
}
}];
// 执行测试
console.log("开始测试卡片数据处理逻辑...\n");
for (let i = 0; i < cardDataTestCases.length; i++) {
const testCase = cardDataTestCases[i];
console.log(`测试 ${i + 1}: ${testCase.name}`);
try {
const result = await _index.default.process(testCase.data);
if (result.items && result.items.length > 0) {
if (testCase.expected.noResult) {
console.log(`❌ 失败 - 期望无结果,但实际有结果:`);
console.log(` type: ${result.items[0].type}, goodsId: ${result.items[0].goodsId}`);
} else if (testCase.expected.hasResult) {
const actualType = result.items[0].type;
const expectedType = testCase.expected.type;
if (actualType === expectedType) {
console.log(`✅ 通过 - type: ${actualType}, goodsId: ${result.items[0].goodsId}`);
} else {
console.log(`❌ 失败 - 期望type: ${expectedType}, 实际type: ${actualType}`);
}
}
} else {
if (testCase.expected.noResult) {
console.log(`✅ 通过 - 无结果(符合预期)`);
} else {
console.log(`❌ 失败 - 期望有结果,但实际无结果`);
}
}
} catch (error) {
console.log(`❌ 错误 - ${error.message}`);
}
console.log("");
}
console.log("卡片数据处理测试完成!");