// @vitest-environment happy-dom import { defaultExportConfig } from "@md-to-pdf/core"; import { describe, expect, it } from "vitest"; import { fitOversizedEChartsToPage } from "../src/echarts-page-fit"; describe("ECharts 单页高度适配", () => { it("将超高 SVG 和宿主同步缩放到单页内容区", () => { const root = document.createElement("div"); root.innerHTML = `
`; fitOversizedEChartsToPage(root, defaultExportConfig); const figure = root.querySelector(".md-echarts"); const host = root.querySelector( ".md-echarts-host" ); const svg = root.querySelector("svg"); expect(figure?.dataset.pageHeightFitted).toBe("true"); expect(Number.parseFloat(host?.style.height ?? "0")).toBeCloseTo( 1000.5748, 3 ); expect(host?.style.aspectRatio).toBe(""); expect(svg?.getAttribute("viewBox")).toBe("0 0 1000 2000"); expect(Number.parseFloat(svg?.style.height ?? "0")).toBeCloseTo( 1000.5748, 3 ); }); it("普通高度图表不改变作者设置的宿主高度", () => { const root = document.createElement("div"); root.innerHTML = `
`; fitOversizedEChartsToPage(root, defaultExportConfig); const figure = root.querySelector(".md-echarts"); const host = root.querySelector( ".md-echarts-host" ); expect(figure?.dataset.pageHeightFitted).toBeUndefined(); expect(host?.style.height).toBe("300px"); }); });