| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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\//);
- });
|