UNPKG

@financial-times/n-concept-ids

Version:
37 lines (30 loc) 1.27 kB
import { describe, test } from 'node:test'; import assert from 'node:assert'; import { data, getPodcastByConceptid } from '../src/podcasts.js'; describe('getPodcastByConceptid()', () => { test('Get podcast by concept ID', () => { const podcast = getPodcastByConceptid('11379aab-8b8e-44c8-9153-10be6eaf3f50'); assert.strictEqual(podcast.conceptId, '11379aab-8b8e-44c8-9153-10be6eaf3f50'); }); test('Get podcast 16x9 image URL by concept ID', () => { const podcast = getPodcastByConceptid('11379aab-8b8e-44c8-9153-10be6eaf3f50'); assert.match(podcast.image16x9, /https:\/\/\w+/); }); test('With unknown conceptId', () => { assert.strictEqual(getPodcastByConceptid('00000000-0000-0000-0000-000000000000'), undefined); }); test('With no arguments', () => { assert.strictEqual(getPodcastByConceptid(), undefined); }); }); describe('data', () => { test('Check data structure', () => { assert.ok(data instanceof Array); assert.match(data[0].conceptId, /^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$/); assert.match(data[0].image16x9, /https:\/\/\w+/); }); test('Check if all podcast concepts are unique', () => { const uniqueConcepts = new Set(data.map((podcast) => podcast.conceptId)); assert.strictEqual(uniqueConcepts.size, data.length); }); });