/ clis / amazon / bestsellers.test.js
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  });