refactoring, numbering plan

This commit is contained in:
rehlert committed 2026-10-28 16:09:53 +01:00
1 parent b5279434b2
commit 3b04039aa9
47 files changed
+3485 -953

No files matched your search

+40
View File
@@ -0,0 +1,40 @@
import { expect, test } from '@playwright/test';
import {
ENCRYPTED_PDF_MESSAGE,
TextOverlayError,
classifyPdfError,
pdfLoadErrorMessage,
pdfProcessingErrorMessage
} from '../../src/lib/pdf-errors';
const encryptedError = () =>
new Error(
'Input document to `PDFDocument.load` is encrypted. You can use `PDFDocument.load(..., { ignoreEncryption: true })`'
);
test('overlay failures keep their own copy', () => {
const error = new TextOverlayError('Der Text ist zu lang.');
expect(classifyPdfError(error)).toBe('text-overlay');
expect(pdfProcessingErrorMessage(error, 'Fallback')).toBe('Der Text ist zu lang.');
expect(pdfLoadErrorMessage(error)).toBe('Der Text ist zu lang.');
});
test('encrypted PDFs map to the shared password hint', () => {
expect(classifyPdfError(encryptedError())).toBe('encrypted');
expect(pdfProcessingErrorMessage(encryptedError(), 'Fallback')).toBe(ENCRYPTED_PDF_MESSAGE);
expect(pdfLoadErrorMessage(encryptedError())).toBe(ENCRYPTED_PDF_MESSAGE);
});
test('unknown failures fall back to the caller copy', () => {
const error = new Error('Invalid PDF structure');
expect(classifyPdfError(error)).toBe('unknown');
expect(pdfProcessingErrorMessage(error, 'Fehler beim Drehen der Seiten.')).toBe(
'Fehler beim Drehen der Seiten.'
);
expect(pdfLoadErrorMessage(error, 'Eigene Meldung.')).toBe('Eigene Meldung.');
expect(pdfLoadErrorMessage(error)).toContain('PDF konnte nicht geladen werden');
// Tool-specific copy must never be overridden by the classification.
expect(pdfProcessingErrorMessage('boom', 'Eigene Meldung.')).toBe('Eigene Meldung.');
});