import { test } from 'node:test'; import assert from 'node:assert/strict'; import { chapterQuality, requireChapterContent } from '../src/publications/chapter-quality.ts'; test('quality counts visible Unicode characters, ignores markup and rejects empty chapters', () => { assert.equal(chapterQuality(' δΈζ π \n', 'text/plain').characters, 3); assert.equal(chapterQuality('
δΈ ζ & π
', 'text/html').characters, 4); for (const body of [' ', '\u200b\u2060', '', '']) { assert.throws(() => requireChapterContent(body, 'text/html'), { code: 'EMPTY_CHAPTER' }); } assert.equal(requireChapterContent('