Files
ReadaBook/apps/web/src/reader/locators.test.ts
Git Agent e5513d81eb feat(api,web): support CBZ — scan, métadonnées, lecteur d'albums
- 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
2026-08-23 11:52:40 +02:00

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);
});
});