import { describe, expect, it } from 'vitest'; import metaJson from './meta.json' with { type: 'json' }; import { loadFixture, runFixtureSuite } from '@rareindex/connectors/testing'; import { localMeta } from '../../api/_lib/local-meta.js'; import createConnector, { conditionFor, parseUsedMarkdown } from './index.js'; const connector = createConnector(localMeta(metaJson)); describe('bh-used', () => { runFixtureSuite(connector, it, expect); it('parses used-department markdown blocks', async () => { 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 |`; const p = parseUsedMarkdown(md, 'u', 'Used-Digital-Cameras'); 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 }); expect(conditionFor('9+')).toBe('excellent'); expect(conditionFor('8')).toBe('good'); const fx = loadFixture('bh-used', 'used-digital-cameras'); const out = await connector.normalize(fx.raw); expect(out.length).toBeGreaterThan(0); for (const r of out) { if (r.kind !== 'listing') throw new Error('expected listing'); expect(r.attributes.categorySlug).toBe('cameras'); expect(r.attributes.identifiers.bh_sku).toMatch(/^\d+$/); expect(r.attributes.brand).toBeTruthy(); if (r.price !== null) expect(r.currency).toBe('USD'); } }); });