SPB Git forge

spb/rareindex

Public
54commits 1branches 0releases
7.1 MBsize
maindefault branch
10 days agolast push
TypeScript 61.9% HTML 37.2% SQL 0.7%
1.3 KB · 30 lines typescript
Raw Blame History
1import { describe, expect, it } from 'vitest';2import { getConnectorMeta } from '@rareindex/connectors';3import { listFixtures, loadFixture, runFixtureSuite } from '@rareindex/connectors/testing';4import createConnector from './index.js';56const connector = createConnector(getConnectorMeta('lorcast'));78describe('lorcast', () => {9  runFixtureSuite(connector, it, expect);1011  it('emits normal + foil variants with TCGplayer market prices', async () => {12    const [name] = listFixtures('lorcast');13    const out = await connector.normalize(loadFixture('lorcast', name!).raw);14    const cats = out.filter((r) => r.kind === 'catalog_item');15    expect(cats.length).toBe(2);16    for (const c of cats) {17      if (c.kind !== 'catalog_item') continue;18      expect(c.attributes.categorySlug).toBe('disney_lorcana');19      expect(c.attributes.setCode).toBe('1');20      expect(c.attributes.set).toBe('The First Chapter');21      expect(c.attributes.number).toMatch(/^\d+$/);22      expect(c.attributes.identifiers.lorcast_id).toMatch(/^crd_/);23    }24    expect(cats.map((c) => c.kind === 'catalog_item' && c.attributes.variant)).toEqual([null, 'Foil']);25    const obs = out.filter((r) => r.kind === 'price_observation');26    expect(obs.length).toBeGreaterThanOrEqual(1);27    for (const o of obs) if (o.kind === 'price_observation') expect(o.currency).toBe('USD');28  });29});30