// @vitest-environment happy-dom import { describe, expect, it } from "vitest"; import { constrainSemanticCoversToPage } from "../src/semantic-cover-fit.js"; function createCover(height: number) { const root = document.createElement("div"); root.innerHTML = `
封面
`; const cover = root.querySelector("header")!; cover.getBoundingClientRect = () => ({ height } as DOMRect); return { root, cover }; } describe("语义封面页面适配", () => { it("只将超过横向页面内容区的封面收束为单页高度", () => { const { root, cover } = createCover(900); expect(constrainSemanticCoversToPage(root, 680)).toBe(1); expect(cover.style.boxSizing).toBe("border-box"); expect(cover.style.height).toBe("680px"); expect(cover.style.minHeight).toBe("680px"); expect(cover.style.maxHeight).toBe("680px"); expect(cover.dataset.semanticCoverFit).toBe("constrained"); }); it("纵向页面可以容纳主题封面时保持主题原始高度", () => { const { root, cover } = createCover(680); expect(constrainSemanticCoversToPage(root, 900)).toBe(0); expect(cover.getAttribute("style")).toBeNull(); expect(cover.dataset.semanticCoverFit).toBeUndefined(); }); });