import assert from 'node:assert/strict'; import test from 'node:test'; import { adaptJdSearchResponse } from '../src/modules/domestic-voc/adapters/jd-search.adapter.js'; test('JD search adapter maps market signals without treating them as operating-period sales', () => { const products = adaptJdSearchResponse({ code: 200, data: { code: 200, data: { products: [{ id: '10001', title: '示例品牌 商用设备', imageUrl: 'jfs/example.jpg', price: '1299.00', sales: '多人购买', monthSales: '30日售出多件', shopId: 'shop-1', shopName: '示例店铺', venderId: 'seller-1', onShelvesTime: 1_700_000_000_000, }], }, }, }, { brand: '示例品牌', category: '商用设备', keyword: '示例品牌 商用设备', collectedAt: '2026-07-29T00:00:00.000Z', }); assert.equal(products.length, 1); assert.equal(products[0]?.productKey, 'jd:10001'); assert.equal(products[0]?.role, 'competitor'); assert.equal(products[0]?.source, 'fmode_gateway'); assert.equal(products[0]?.summary.averageUnitPrice, 1299); assert.equal(products[0]?.summary.soldUnits, 0); assert.equal(products[0]?.market?.monthSalesText, '30日售出多件'); assert.equal(products[0]?.market?.shopName, '示例店铺'); assert.match(products[0]?.detail?.imageUrl ?? '', /^https:\/\/img30\.360buyimg\.com\/sku\//); });