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