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, { categoryForLot } from './index.js'; const connector = createConnector(ConnectorMetaSchema.parse(metaJson)); describe('phillips-art', () => { runFixtureSuite(connector, it, expect); it('emits premium-inclusive sales with artist as brand', async () => { const name = listFixtures('phillips-art')[0]!; const out = await connector.normalize(loadFixture('phillips-art', name).raw); const sales = out.filter((r) => r.kind === 'sale'); expect(sales.length).toBeGreaterThan(5); for (const r of sales) { if (r.kind !== 'sale') continue; expect(r.buyerPremiumIncluded).toBe(true); expect(r.auctionHouse).toBe('Phillips'); expect(r.attributes.brand).toBeTruthy(); expect(['art', 'contemporary_art', 'photography', 'design_furniture', 'jewelry', 'luxury_handbags', 'other_watches']).toContain(r.attributes.categorySlug); } }); it('refines lot categories', () => { expect(categoryForLot('contemporary_art', 'Gelatin silver print, 1975')).toBe('photography'); expect(categoryForLot('design_furniture', 'Pair of "Lounge" chairs')).toBe('design_furniture'); expect(categoryForLot('contemporary_art', 'Untitled, screenprint')).toBe('contemporary_art'); }); });