- api: cbz utilitaire commun, scanner/métadonnées (+ tests), books, schéma et migrations - web: CbzReader, ReaderPage/locators (+ tests), types et client API - shared: types formats Refs: #16
25 lines
794 B
TypeScript
25 lines
794 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { parseCbzPageLocator, parsePdfPageLocator, pdfPagePercent } from "./locators";
|
|
|
|
describe("reader locators", () => {
|
|
it("parses valid PDF page locators", () => {
|
|
expect(parsePdfPageLocator("pdf:page:12")).toBe(12);
|
|
});
|
|
|
|
it("ignores invalid PDF locators", () => {
|
|
expect(parsePdfPageLocator("epub:start")).toBeNull();
|
|
expect(parsePdfPageLocator("pdf:page:0")).toBeNull();
|
|
});
|
|
|
|
it("parses CBZ page locators", () => {
|
|
expect(parseCbzPageLocator("cbz:page:7")).toBe(7);
|
|
expect(parseCbzPageLocator("pdf:page:7")).toBeNull();
|
|
});
|
|
|
|
it("bounds PDF page percentages", () => {
|
|
expect(pdfPagePercent(2, 4)).toBe(50);
|
|
expect(pdfPagePercent(8, 4)).toBe(100);
|
|
expect(pdfPagePercent(1, 0)).toBe(0);
|
|
});
|
|
});
|