import { describe, expect, it } from 'vitest'; import { ConnectorMetaSchema } from '@rareindex/connectors'; import { listFixtures, loadFixture, runFixtureSuite } from '@rareindex/connectors/testing'; import metaJson from './meta.json' with { type: 'json' }; import createConnector, { parseCategoryPage, parseItemPage, wineFacts } from './index.js'; const connector = createConnector(ConnectorMetaSchema.parse(metaJson)); describe('winebid', () => { runFixtureSuite(connector, it, expect); it('emits per-bottle USD sales (premium excluded) dated by the recent-sales table', async () => { const name = listFixtures('winebid')[0]!; const out = await connector.normalize(loadFixture('winebid', name).raw); const sales = out.filter((r) => r.kind === 'sale'); expect(sales.length).toBeGreaterThan(0); for (const r of sales) { if (r.kind !== 'sale') continue; expect(r.currency).toBe('USD'); expect(r.buyerPremiumIncluded).toBe(false); expect(r.attributes.metadata.buyer_premium_pct).toBe(17); expect(r.saleDate.getFullYear()).toBeGreaterThanOrEqual(2015); expect(r.sourceUrl).toMatch(/^https:\/\/www\.winebid\.com\/BuyWine\/Item\/\d+/); } }); it('parses item pages, category links and titles', () => { const html = `

1983 Château Margaux (1.5L)

Light capsule condition issue

ItemSoldAmountDate
I108564012$520Aug 23, 2026
`; const p = parseItemPage(html, 'https://www.winebid.com/BuyWine/Item/10881873/1983-Chateau-Margaux', 'Bordeaux')!; expect(p.itemId).toBe('10881873'); expect(p.title).toBe('1983 Château Margaux (1.5L)'); expect(p.recentSales).toEqual([{ itemId: '10856401', url: 'https://www.winebid.com/BuyWine/Item/10856401/1983-Chateau-Margaux', quantity: 2, amountUsd: 520, soldOn: 'August 23, 2026 12:00:00 AM (PDT)' }]); expect(wineFacts('1983 Château Margaux (1.5L)')).toEqual({ vintage: 1983, name: 'Château Margaux', size: '1.5L' }); expect(wineFacts('2019 Opus One')).toEqual({ vintage: 2019, name: 'Opus One', size: '750ml' }); expect(parseCategoryPage('[x](https://www.winebid.com/BuyWine/Item/10887720/2019-Chateau-Haut-Brion-~) a')).toEqual(['https://www.winebid.com/BuyWine/Item/10887720/2019-Chateau-Haut-Brion-~', 'https://www.winebid.com/BuyWine/Item/1/a']); }); });