TypeScript 61.9%
HTML 37.2%
SQL 0.7%
1import { describe, expect, it } from 'vitest';2import { getConnectorMeta } from '@rareindex/connectors';3import { loadFixture, runFixtureSuite } from '@rareindex/connectors/testing';4import createConnector, { splitMasterTitle, variantFromFormat, yearFromReleased } from './index.js';56const connector = createConnector(getConnectorMeta('discogs'));78describe('discogs', () => {9 runFixtureSuite(connector, it, expect);1011 it('maps versions to music catalog items with deterministic identifiers', async () => {12 const fx = loadFixture('discogs', 'nevermind-versions');13 const out = await connector.normalize(fx.raw);14 expect(out.length).toBeGreaterThan(5);15 for (const r of out) {16 if (r.kind !== 'catalog_item') throw new Error('expected catalog_item');17 expect(r.attributes.categorySlug).toBe('music');18 expect(r.attributes.identifiers.discogs_release_id).toMatch(/^\d+$/);19 expect(r.attributes.identifiers.discogs_master_id).toBe('13814');20 expect(r.attributes.name).toBe('Nirvana – Nevermind');21 expect(r.sourceUrl).toMatch(/discogs\.com\/release\/\d+$/);22 }23 });2425 it('maps marketplace stats to a low observation with sample size', async () => {26 const fx = loadFixture('discogs', 'nevermind-release-stats');27 const out = await connector.normalize(fx.raw);28 const obs = out.find((r) => r.kind === 'price_observation');29 if (obs?.kind !== 'price_observation') throw new Error('expected observation');30 expect(obs.priceKind).toBe('low');31 expect(obs.price).toBeGreaterThan(0);32 expect(obs.currency).toBe('USD');33 expect(obs.sampleSize).toBeGreaterThan(0);34 expect(obs.confidence).toBeLessThanOrEqual(0.7);35 });3637 it('helpers', () => {38 expect(splitMasterTitle('Nirvana - Nevermind')).toEqual({ artist: 'Nirvana', title: 'Nevermind' });39 expect(splitMasterTitle('Homogenic')).toEqual({ artist: null, title: 'Homogenic' });40 expect(variantFromFormat('Album, Reissue, 180 Gram')).toBe('Reissue, 180 Gram');41 expect(variantFromFormat('Album, LP')).toBeNull();42 expect(yearFromReleased('1991-09-24')).toBe(1991);43 expect(yearFromReleased(null)).toBeNull();44 });45});46