item.test.js
1 import { describe, expect, it } from 'vitest'; 2 import { __test__ } from './item.js'; 3 describe('1688 item normalization', () => { 4 it('normalizes public item payload into contract fields', () => { 5 const result = __test__.normalizeItemPayload({ 6 href: 'https://detail.1688.com/offer/887904326744.html', 7 title: '法式春季长袖开衫连衣裙女新款大码女装碎花吊带裙套装142077 - 阿里巴巴', 8 bodyText: ` 9 青岛沁澜衣品服装有限公司 10 入驻13年 11 主营:大码女装 12 店铺回头率 13 87% 14 山东青岛 15 3套起批 16 已售1600+套 17 支持定制logo 18 `, 19 offerTitle: '法式春季长袖开衫连衣裙女新款大码女装碎花吊带裙套装142077', 20 offerId: 887904326744, 21 seller: { 22 companyName: '青岛沁澜衣品服装有限公司', 23 memberId: 'b2b-1641351767', 24 winportUrl: 'https://yinuoweierfushi.1688.com/page/index.html?spm=a1', 25 }, 26 trade: { 27 beginAmount: 3, 28 priceDisplay: '96.00-98.00', 29 unit: '套', 30 saleCount: 1655, 31 offerIDatacenterSellInfo: { 32 面料名称: '莫代尔', 33 主面料成分: '莫代尔纤维', 34 sellPointModel: '{"ignore":true}', 35 }, 36 offerPriceModel: { 37 currentPrices: [ 38 { beginAmount: 3, price: '98.00' }, 39 { beginAmount: 50, price: '97.00' }, 40 ], 41 }, 42 }, 43 gallery: { 44 mainImage: ['https://example.com/1.jpg'], 45 offerImgList: ['https://example.com/2.jpg'], 46 wlImageInfos: [{ fullPathImageURI: 'https://example.com/3.jpg' }], 47 }, 48 services: [ 49 { serviceName: '延期必赔', agreeDeliveryHours: 360 }, 50 { serviceName: '品质保障' }, 51 ], 52 }); 53 expect(result.offer_id).toBe('887904326744'); 54 expect(result.member_id).toBe('b2b-1641351767'); 55 expect(result.shop_id).toBe('yinuoweierfushi'); 56 expect(result.seller_url).toBe('https://yinuoweierfushi.1688.com'); 57 expect(result.price_text).toBe('¥96.00-98.00'); 58 expect(result.moq_text).toBe('3套起批'); 59 expect(result.origin_place).toBe('山东青岛'); 60 expect(result.delivery_days_text).toBe('360小时内发货'); 61 expect(result.private_label_text).toBe('支持定制logo'); 62 expect(result.visible_attributes).toEqual([ 63 { key: '面料名称', value: '莫代尔' }, 64 { key: '主面料成分', value: '莫代尔纤维' }, 65 ]); 66 }); 67 });