fix(web,api): lecteur PDF — options pdf.js, assets cmaps/fonts et recherche sans limite par défaut

This commit is contained in:
Git Agent
2026-08-24 14:15:25 +02:00
parent f8c8ffd45c
commit b3bd678291
14 changed files with 336 additions and 31 deletions

View File

@ -1,5 +1,6 @@
import { describe, expect, it } from "vitest";
import { epubFileName } from "./EpubReader";
import { pdfDocumentOptions } from "./pdfDocumentOptions";
import { clampReaderPage, containPageSize, nextReaderPage, orientedContainPageSize, previousReaderPage, readableViewportSize, readerPositionLabel } from "./readerLayout";
import { classifyPdfCanvas, pdfCanvasHasVisibleContent, pdfCanvasVisible, pdfRenderScale } from "./pdfRender";
import { configurePdfWorker, pdfWorkerSrc } from "./pdfWorker";
@ -28,6 +29,33 @@ describe("reader runtime helpers", () => {
expect(pdfjs.GlobalWorkerOptions.workerSrc).toBe(pdfWorkerSrc);
});
it("builds browser PDF document options with bundled asset URLs", () => {
expect(pdfDocumentOptions({ url: "/books/1/file", withCredentials: true }, "browser")).toMatchObject({
url: "/books/1/file",
withCredentials: true,
cMapUrl: "/pdfjs/cmaps/",
cMapPacked: true,
iccUrl: "/pdfjs/iccs/",
standardFontDataUrl: "/pdfjs/standard_fonts/",
wasmUrl: "/pdfjs/wasm/",
useWorkerFetch: true,
useWasm: true
});
});
it("builds Node PDF document options with local wasm decoder assets", () => {
const data = new Uint8Array([1, 2, 3]);
expect(pdfDocumentOptions({ data, disableWorker: true }, "node")).toMatchObject({
data,
disableWorker: true,
cMapPacked: true,
useWorkerFetch: false,
useWasm: true
});
expect(pdfDocumentOptions({ data, disableWorker: true }, "node").wasmUrl).toContain("node_modules/pdfjs-dist/wasm/");
});
it("normalizes reader technical errors", () => {
expect(readerErrorMessage(new Error("Setting up fake worker failed"), "PDF indisponible")).toBe("Setting up fake worker failed");
expect(readerErrorMessage("", "EPUB indisponible")).toBe("EPUB indisponible");