bestsellers.test.js
1 import { describe, expect, it } from 'vitest'; 2 import { __test__ } from './rankings.js'; 3 describe('amazon bestsellers normalization', () => { 4 it('normalizes bestseller cards and infers review counts from card text', () => { 5 const result = __test__.normalizeRankingCandidate({ 6 asin: 'B0DR31GC3D', 7 title: '', 8 href: 'https://www.amazon.com/NUTIKAS-Shelves-Desktop-Orgnizer-Shlef/dp/B0DR31GC3D/ref=zg_bs', 9 price_text: '$25.92', 10 rating_text: '4.3 out of 5 stars', 11 review_count_text: '', 12 card_text: 'Desk Shelves Desktop Organizer Shlef\n4.3 out of 5 stars\n435\n$25.92', 13 }, { 14 listType: 'bestsellers', 15 rankFallback: 2, 16 listTitle: 'Amazon Best Sellers: Best Desktop & Off-Surface Shelves', 17 sourceUrl: 'https://www.amazon.com/example', 18 categoryTitle: null, 19 categoryUrl: 'https://www.amazon.com/example', 20 categoryPath: [], 21 visibleCategoryLinks: [], 22 }); 23 expect(result.rank).toBe(2); 24 expect(result.asin).toBe('B0DR31GC3D'); 25 expect(result.title).toBe('Desk Shelves Desktop Organizer Shlef'); 26 expect(result.review_count).toBe(435); 27 expect(result.list_title).toBe('Amazon Best Sellers: Best Desktop & Off-Surface Shelves'); 28 }); 29 });