TypeScript 61.9%
HTML 37.2%
SQL 0.7%
1import { describe, expect, it } from 'vitest';2import { ConnectorMetaSchema } from '@rareindex/connectors';3import metaJson from './meta.json' with { type: 'json' };4import { loadFixture, runFixtureSuite } from '@rareindex/connectors/testing';5import createConnector, { parseCategoryPage, parseSpecimenPage } from './index.js';67const connector = createConnector(ConnectorMetaSchema.parse(metaJson));89describe('fossilera', () => {10 runFixtureSuite(connector, it, expect);1112 it('emits one USD listing per unique specimen with the FossilEra item number', async () => {13 const fx = loadFixture('fossilera', 'dinosaur-teeth-p1');14 const out = await connector.normalize(fx.raw);15 expect(out.length).toBeGreaterThanOrEqual(8);16 for (const l of out) {17 if (l.kind !== 'listing') throw new Error('expected listing');18 expect(l.attributes.categorySlug).toBe('fossils');19 expect(l.attributes.identifiers.fossilera_item).toMatch(/^\d+$/);20 expect(l.currency).toBe('USD');21 expect(l.seller).toBe('FossilEra');22 expect(l.sourceUrl).toMatch(/fossilera\.com\/fossils\//);23 expect(l.attributes.metadata.unique_specimen).toBe(true);24 }25 const reduced = out.find((l) => l.kind === 'listing' && l.attributes.metadata.previous_price_usd);26 expect(reduced).toBeTruthy();27 });2829 it('parsers handle cards, reduced prices and specimen details', () => {30 const html = `<a href="/fossils/x-tooth"><div class="image"><img alt="X Tooth #123" src="//assets0.fossilera.com/x.jpg"></div><div class="info"> 3.1" X Tooth - Montana <div class="price"><span class="old-price">$300</span> $250</div></div></a>`;31 const p = parseCategoryPage(html, 'u', 'fossils');32 expect(p.items).toHaveLength(1);33 expect(p.items[0]).toMatchObject({ item: '123', price: 250, oldPrice: 300, sold: false, title: '3.1" X Tooth - Montana', image: 'https://assets0.fossilera.com/x.jpg' });34 const detail = `<html><body><h1>Big Tooth</h1><div class="price">$1,000</div><div class="detail">SPECIES Tyrannosaurus rex</div><div class="detail">AGE Late Cretaceous</div><div class="detail">LOCATION Garfield County, Montana</div><div class="detail">FORMATION Hell Creek Formation</div><div class="detail">SIZE 3.95" tooth</div>ITEM #355472</body></html>`;35 const d = parseSpecimenPage(detail, 'https://www.fossilera.com/fossils/big-tooth', 'fossils');36 expect(d?.items[0]).toMatchObject({ item: '355472', price: 1000, species: 'Tyrannosaurus rex', formation: 'Hell Creek Formation', location: 'Garfield County, Montana', size: '3.95" tooth' });37 });38});39