import { test } from '@japa/runner' import { SegmentScanner, scanOverviewText } from '#lib/edge/scan' import { segmentFromHeader } from '#lib/headers/index' const priorities = { 'alt.binaries.boneless': 1, 'alt.binaries.test': 2 } test.group('edge / scanOverviewText and SegmentScanner', () => { test('reads the fields of overview lines, Xref without its name', ({ assert }) => { const text = '101\tShow - "a.mkv" yEnc (1/2)\tposter \tMon, 05 Oct 2026 10:00:00 +0000\t\t\t700000\t5000\tXref: news.example alt.binaries.test:101\r\n' + '102\tShow - "a.mkv" yEnc (2/2) 1234\tposter \tMon, 05 Oct 2026 10:00:01 +0000\t\t\t1234\t10\tXref: news.example alt.binaries.test:102 alt.binaries.boneless:9\r\n' const lines: string[][] = [] scanOverviewText(text, (...fields) => lines.push(fields.map(String))) assert.deepEqual(lines, [ ['101', 'Show - "a.mkv" yEnc (1/2)', 'poster ', 'Mon, 05 Oct 2026 10:00:00 +0000', '', '700000', 'news.example alt.binaries.test:101'], ['102', 'Show - "a.mkv" yEnc (2/2) 1234', 'poster ', 'Mon, 05 Oct 2026 10:00:01 +0000', '', '1234', 'news.example alt.binaries.test:102 alt.binaries.boneless:9'], ]) }) test('the owner is the indexed group with the lowest priority in the Xref', ({ assert }) => { const scanner = new SegmentScanner() assert.equal(scanner.owner('news.example alt.binaries.test:5 alt.binaries.boneless:9', 'alt.binaries.test', priorities), 'alt.binaries.boneless') assert.equal(scanner.owner('news.example alt.binaries.test:5 alt.binaries.other:9', 'alt.binaries.test', priorities), 'alt.binaries.test') assert.equal(scanner.owner('news.example', 'alt.binaries.test', priorities), 'alt.binaries.test') }) test('segments match segmentFromHeader, and share their file details', ({ assert }) => { const scanner = new SegmentScanner() const subject = (n: number) => `[03/10] - "Some.Release.part02.rar" yEnc (${n}/137) 51315352` const xref = 'news.example alt.binaries.test:7' const a = scanner.segment(7, subject(12), 'poster ', 'Mon, 05 Oct 2026 10:00:00 +0000', '', '700000', xref, 'alt.binaries.test')! const b = scanner.segment(8, subject(13), 'poster ', 'Mon, 05 Oct 2026 10:00:00 +0000', '', '700000', xref, 'alt.binaries.test')! const old = segmentFromHeader({ 'subject': subject(12), 'from': 'poster ', 'date': 'Mon, 05 Oct 2026 10:00:00 +0000', 'message-id': '', ':bytes': '700000', 'xref': xref }, 'alt.binaries.test', 7)! assert.deepEqual([a.fileKey, a.number, a.totalParts, a.messageId, a.bytes, a.file.name, a.file.groups, a.file.release?.key], [old.fileKey, old.number, old.totalParts, old.messageId, old.bytes, old.name, old.groups, old.release?.key]) assert.strictEqual(a.file, b.file) assert.equal(b.number, 13) // Obfuscated, or a counter only before the name: no segment. assert.isNull(scanner.segment(9, 'Xq8r2KdLm3Zw91PqA7zz', 'p', '', '', '1', xref, 'alt.binaries.test')) assert.isNull(scanner.segment(9, '(1/2) "x.bin" yEnc', 'p', '', '', '1', xref, 'alt.binaries.test')) }) })