import { describe, expect, it } from 'vitest'; import { readFileSync } from 'node:fs'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { ConnectorMetaSchema } from '@rareindex/connectors'; import { loadFixture, runFixtureSuite } from '@rareindex/connectors/testing'; import createConnector, { parseAuctionDates, parseLotsPage, parseResultsSlugs } from './index.js'; const dir = path.dirname(fileURLToPath(import.meta.url)); const meta = ConnectorMetaSchema.parse(JSON.parse(readFileSync(path.join(dir, 'meta.json'), 'utf8'))); const connector = createConnector(meta); const MD = `# Monterey 2026 August 13-15 [View 1963 Ferrari 250 GT/L Berlinetta Lusso](https://www.mecum.com/lots/1175988/1963-ferrari-250-gt-l-berlinetta-lusso?aa_id=793591-0) [![sold](https://www.mecum.com/_next/static/media/lot-listing-sold.webp)\\\\ \\\\ $1,650,000\\\\ \\\\ ![1963 Ferrari 250 GT/L Berlinetta Lusso](https://images.mecum.com/image/upload/a.jpg?)](https://www.mecum.com/lots/1175988/1963-ferrari-250-gt-l-berlinetta-lusso?aa_id=793591-0) Lot S126 [Monterey 2026](https://www.mecum.com/auctions/monterey-2026/) [1963 Ferrari 250 GT/L Berlinetta Lusso](https://www.mecum.com/lots/1175988/1963-ferrari-250-gt-l-berlinetta-lusso?aa_id=793591-0) S/N 4635, The 79th of 350 Produced From 1962-64 [View 1969 Chevrolet Camaro](https://www.mecum.com/lots/1175999/1969-chevrolet-camaro?aa_id=1) [![bid goes on](https://www.mecum.com/_next/static/media/x.webp)\\\\ \\\\ $50,000\\\\ \\\\ ![1969 Chevrolet Camaro](https://images.mecum.com/image/upload/b.jpg?)](https://www.mecum.com/lots/1175999/1969-chevrolet-camaro?aa_id=1) Lot S127 `; describe('mecum', () => { runFixtureSuite(connector, it, expect); it('parses lots, sold badges, results slugs and auction dates', () => { const p = parseLotsPage(MD, 'monterey-2026', 1); expect(p.auctionName).toBe('Monterey 2026'); expect(p.dateText).toBe('August 13-15'); expect(p.lots.length).toBe(2); expect(p.lots[0]).toMatchObject({ lotId: '1175988', lotNumber: 'S126', sold: true, priceText: '$1,650,000', subtitle: 'S/N 4635, The 79th of 350 Produced From 1962-64' }); expect(p.lots[1]!.sold).toBe(false); expect(parseResultsSlugs('')).toEqual(['monterey-2026', 'houston-2026']); expect(parseAuctionDates('{\\"startDate\\":\\"2026-08-13T00:00:00+00:00\\",\\"endDate\\":\\"2026-08-15T00:00:00+00:00\\"}')).toEqual({ startDate: '2026-08-13T00:00:00+00:00', endDate: '2026-08-15T00:00:00+00:00' }); }); it('normalises only sold lots, dated by the auction start, premium unknown', async () => { const payload = { ...parseLotsPage(MD, 'monterey-2026', 1), startDate: '2026-08-13T00:00:00+00:00', endDate: '2026-08-15T00:00:00+00:00' }; const out = await connector.normalize({ url: 'x', externalId: 'm', kind: 'sale', engine: 'firecrawl', fetchedAt: new Date('2026-09-07T00:00:00Z'), payload }); expect(out.length).toBe(1); const s = out[0]!; if (s.kind !== 'sale') throw new Error('sale'); expect(s).toMatchObject({ price: 1650000, currency: 'USD', buyerPremiumIncluded: null, lotNumber: 'S126', auctionHouse: 'Mecum Auctions' }); expect(s.saleDate.toISOString()).toBe('2026-08-13T00:00:00.000Z'); expect(s.attributes).toMatchObject({ brand: 'Ferrari', year: 1963, categorySlug: 'automobiles' }); }); it('fixture sales carry Mecum lot ids', async () => { const out = await connector.normalize(loadFixture('mecum', 'lots-page').raw); expect(out.length).toBeGreaterThan(0); for (const r of out) if (r.kind === 'sale') expect(r.attributes.identifiers.mecum_lot_id).toMatch(/^\d+$/); }); });