test(coverage): drive browser tests to 80% on all metrics (#496) #505
@@ -66,4 +66,41 @@ describe('createPdfRenderer', () => {
|
|||||||
expect(r.error).toBeNull();
|
expect(r.error).toBeNull();
|
||||||
expect(r.loading).toBe(false);
|
expect(r.loading).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('renderCurrentPage is a no-op when pdfjsLib is not initialized', async () => {
|
||||||
|
const r = createPdfRenderer();
|
||||||
|
// Should not throw — early-return branch
|
||||||
|
await expect(r.renderCurrentPage()).resolves.toBeUndefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('prerender is a no-op when pdfDoc is null', async () => {
|
||||||
|
const r = createPdfRenderer();
|
||||||
|
await expect(r.prerender()).resolves.toBeUndefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('destroy is safe to call when no document is loaded', () => {
|
||||||
|
const r = createPdfRenderer();
|
||||||
|
expect(() => r.destroy()).not.toThrow();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('setElements stores canvas and text layer refs', () => {
|
||||||
|
const r = createPdfRenderer();
|
||||||
|
const canvas = document.createElement('canvas');
|
||||||
|
const textLayer = document.createElement('div');
|
||||||
|
expect(() => r.setElements(canvas, textLayer)).not.toThrow();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('isLoaded reflects totalPages > 0', () => {
|
||||||
|
const r = createPdfRenderer();
|
||||||
|
// Initial state — totalPages=0 → not loaded
|
||||||
|
expect(r.isLoaded).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('multiple zoomIn calls accumulate', () => {
|
||||||
|
const r = createPdfRenderer();
|
||||||
|
r.zoomIn();
|
||||||
|
r.zoomIn();
|
||||||
|
r.zoomIn();
|
||||||
|
expect(r.scale).toBeCloseTo(2.25);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user