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.4 KB · 33 lines typescript
Raw Blame History
1import { describe, expect, it } from 'vitest';2import meta from './meta.json' with { type: 'json' };3import { localMeta } from '../_lib/local-meta.js';4import { listFixtures, loadFixture, runFixtureSuite } from '@rareindex/connectors/testing';5import createConnector, { slabCategory } from './index.js';67const connector = createConnector(localMeta(meta));89describe('myslabs', () => {10  runFixtureSuite(connector, it, expect);1112  it('classifies slab titles', () => {13    expect(slabCategory('2025 Prizm FIFA Manga Kylian Mbappe BGS 9.5', null)).toBe('soccer_cards');14    expect(slabCategory('1999 Pokemon Base Set Charizard Holo PSA 9', null)).toBe('pokemon');15    expect(slabCategory('Amazing Spider-Man #300 CGC 9.8 1988', null)).toBe('marvel_comics');16    expect(slabCategory('2003 Topps Chrome LeBron James Rookie PSA 10', null)).toBe('basketball_cards');17    expect(slabCategory('Random vase', null)).toBeNull();18  });1920  it('records sold-out slabs as sold listings, never as sales', async () => {21    for (const name of listFixtures('myslabs')) {22      const out = await connector.normalize(loadFixture('myslabs', name).raw);23      for (const r of out) {24        expect(r.kind).toBe('listing');25        if (r.kind === 'listing') {26          expect(['available', 'sold', 'unknown']).toContain(r.availability);27          expect(r.currency).toBe('USD');28        }29      }30    }31  });32});33