Fix: PDF-Bericht -- CJS-Interop, Leerseiten und sichtbare Fehler
Deploy App / deploy (push) Successful in 1m10s
Deploy App / deploy (push) Successful in 1m10s
1) pdfkit wird als externes CJS-Modul geladen. Je nach Interop kommt der Konstruktor direkt oder unter .default an -- trifft man die falsche Form, gelingt der Import, aber `new PDFDocument()` scheitert erst zur Laufzeit (passt zum gemeldeten 500: unauth. Aufruf gab 401, die Erzeugung 500). Beide Formen werden jetzt akzeptiert. 2) Die Fusszeile stand unterhalb des Satzspiegels -- pdfkit haengt dafuer automatisch Seiten an. Ein Bericht mit 6 Inhaltsseiten wurde so auf 18 aufgeblaeht. Unterer Rand wird fuers Schreiben auf 0 gesetzt; ein Test prueft jetzt die Seitenzahl im FERTIGEN PDF, nicht davor. 3) Rendern und Speichern melden ihre Ursache statt eines nackten 500. Spezifikation unveraendert, 1 Test ergaenzt (221 -> 222). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -185,6 +185,18 @@ describe("renderReportPdf", () => {
|
||||
expect(pdf.length).toBeGreaterThan(5000);
|
||||
}, 30000);
|
||||
|
||||
it("hängt keine leeren Seiten an", async () => {
|
||||
// Die Fusszeile steht unterhalb des Satzspiegels; ohne Vorkehrung fügt pdfkit dafür je
|
||||
// Seite neue Seiten an und der Bericht füllt sich mit Leerseiten.
|
||||
const m = buildReport(input());
|
||||
const pdf = await renderReportPdf(m);
|
||||
const s = pdf.toString("latin1");
|
||||
const pages = (s.match(/\/Type\s*\/Page[^s]/g) ?? []).length;
|
||||
// Ein Einzelszenario ergibt Deckblatt + Szenario + Hinweise.
|
||||
expect(pages).toBeGreaterThanOrEqual(3);
|
||||
expect(pages).toBeLessThanOrEqual(5);
|
||||
}, 30000);
|
||||
|
||||
it("kommt auch mit einem leeren Plan zurecht, statt zu werfen", async () => {
|
||||
// Robustheit: Ein Plan ohne Phasen darf keinen Absturz erzeugen.
|
||||
const leer = { ...plan("Leer"), phases: [], elements: [] } as unknown as PlanInput;
|
||||
|
||||
Reference in New Issue
Block a user