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.7 KB · 30 lines typescript
Raw Blame History
1import { describe, expect, it } from 'vitest';2import metaJson from './meta.json' with { type: 'json' };3import { loadFixture, runFixtureSuite } from '@rareindex/connectors/testing';4import { localMeta } from '../../api/_lib/local-meta.js';5import createConnector, { conditionFor, parseUsedMarkdown } from './index.js';67const connector = createConnector(localMeta(metaJson));89describe('bh-used', () => {10  runFixtureSuite(connector, it, expect);1112  it('parses used-department markdown blocks', async () => {13    const md = `### [Nikon D850 DSLR Camera](https://www.bhphotovideo.com/c/product/803456756-USE/nikon_1585_d850_dslr_camera.html) |  | BH # 3456756MFR # 1585 |  | Condition:8+Moderate wear |  | Shutter Count: 138,000Warranty: B&H 90 Days |  | New$1,996.95 |  | $1,79995 |  | Used Savings$197.00 |  | Add to Cart |  | In Stock |`;14    const p = parseUsedMarkdown(md, 'u', 'Used-Digital-Cameras');15    expect(p.items[0]).toMatchObject({ name: 'Nikon D850 DSLR Camera', bhSku: '3456756', mfr: '1585', grade: '8+', shutterCount: 138000, usedPrice: 1799.95, newPrice: 1996.95, inStock: true });16    expect(conditionFor('9+')).toBe('excellent');17    expect(conditionFor('8')).toBe('good');18    const fx = loadFixture('bh-used', 'used-digital-cameras');19    const out = await connector.normalize(fx.raw);20    expect(out.length).toBeGreaterThan(0);21    for (const r of out) {22      if (r.kind !== 'listing') throw new Error('expected listing');23      expect(r.attributes.categorySlug).toBe('cameras');24      expect(r.attributes.identifiers.bh_sku).toMatch(/^\d+$/);25      expect(r.attributes.brand).toBeTruthy();26      if (r.price !== null) expect(r.currency).toBe('USD');27    }28  });29});30