// @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");
});
});