import { test } from '@japa/runner' import { SOURCES, sourceCode, sourceName } from '#lib/release/source' test.group('release source codes', () => { test('names and codes map both ways; the codes are fixed', ({ assert }) => { assert.deepEqual(SOURCES, { 'subject': 1, 'post': 2, 'stem': 3, 'spot': 4, 'nzb': 5, 'album': 6, 'weak-stem': 7 }) for (const [name, code] of Object.entries(SOURCES)) { assert.equal(sourceCode(name), code) assert.equal(sourceName(code), name) assert.equal(sourceName(String(code)), name) } }) test('an unknown name throws, an unknown code reads as unknown', ({ assert }) => { assert.throws(() => sourceCode('subjekt'), /Unknown release source/) assert.equal(sourceName(99), 'unknown') assert.equal(sourceName(null), 'unknown') }) })