refactoring, numbering plan
This commit is contained in:
1 parent
b5279434b2
commit
3b04039aa9
47 files changed
+3485
-953
No files matched your search
@@ -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.');
|
||||
});
|
||||
Reference in new issue
Block a user