import { describe, expect, it } from 'vitest'; import { getConnectorMeta } from '@rareindex/connectors'; import { listFixtures, loadFixture, runFixtureSuite } from '@rareindex/connectors/testing'; import createConnector from './index.js'; const connector = createConnector(getConnectorMeta('lorcast')); describe('lorcast', () => { runFixtureSuite(connector, it, expect); it('emits normal + foil variants with TCGplayer market prices', async () => { const [name] = listFixtures('lorcast'); const out = await connector.normalize(loadFixture('lorcast', name!).raw); const cats = out.filter((r) => r.kind === 'catalog_item'); expect(cats.length).toBe(2); for (const c of cats) { if (c.kind !== 'catalog_item') continue; expect(c.attributes.categorySlug).toBe('disney_lorcana'); expect(c.attributes.setCode).toBe('1'); expect(c.attributes.set).toBe('The First Chapter'); expect(c.attributes.number).toMatch(/^\d+$/); expect(c.attributes.identifiers.lorcast_id).toMatch(/^crd_/); } expect(cats.map((c) => c.kind === 'catalog_item' && c.attributes.variant)).toEqual([null, 'Foil']); const obs = out.filter((r) => r.kind === 'price_observation'); expect(obs.length).toBeGreaterThanOrEqual(1); for (const o of obs) if (o.kind === 'price_observation') expect(o.currency).toBe('USD'); }); });