import { test } from 'node:test' import assert from 'node:assert/strict' import PDFDocument from 'pdfkit' import { useTestEnv } from './support/testEnv.js' import { leseSeiten, seitenZahl } from './auftraegePdfHilfe.js' useTestEnv({ appwriteUrl: 'http://127.0.0.1:1', stripeUrl: 'http://127.0.0.1:1' }) const { ladeSchriften } = await import('../server/services/auftraege/pdf.js') // Prüft die Testhilfe selbst an einem kleinen, direkt mit pdfkit gebauten PDF (unabhängig vom AB-Code) function kleinesPdf(komprimieren) { const { regular, semibold } = ladeSchriften() const doc = new PDFDocument({ size: 'A4', compress: komprimieren, info: { CreationDate: new Date('2026-10-06T10:00:00.000Z') } }) doc.registerFont('Figtree', regular) doc.registerFont('Figtree-SemiBold', semibold) const teile = [] doc.on('data', (teil) => teile.push(teil)) const fertig = new Promise((resolve) => doc.on('end', () => resolve(Buffer.concat(teile)))) doc.font('Figtree').fontSize(12).text(`Müller & Söhne – ß € ${String.fromCodePoint(0x2212)}5`, 50, 50, { lineBreak: false }) doc.font('Figtree-SemiBold').fontSize(12).text('Zweite Zeile „fett“', 50, 80, { lineBreak: false }) doc.addPage().font('Figtree').fontSize(12).text('Seite zwei', 50, 50, { lineBreak: false }) doc.end() return fertig } test('leseSeiten und seitenZahl: Text je Seite aus einem pdfkit-PDF, komprimiert und unkomprimiert', async () => { for (const komprimieren of [true, false]) { const pdf = await kleinesPdf(komprimieren) assert.equal(seitenZahl(pdf), 2) assert.deepEqual(leseSeiten(pdf), [[`Müller & Söhne – ß € ${String.fromCodePoint(0x2212)}5`, 'Zweite Zeile „fett“'], ['Seite zwei']]) } })