feat: 实现 Pandoc DOCX 转换服务
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { randomBytes } from "node:crypto";
|
||||
import { unzipSync, zipSync } from "fflate";
|
||||
import {
|
||||
defaultExportConfig,
|
||||
@@ -7,6 +8,7 @@ import {
|
||||
} from "@md-to-pdf/core";
|
||||
import {
|
||||
createDynamicReferenceDocx,
|
||||
validateGeneratedDocx,
|
||||
validateDynamicReferenceDocx,
|
||||
writeReferenceDocxPackage
|
||||
} from "../src/index.js";
|
||||
@@ -272,4 +274,27 @@ describe("动态 reference.docx", () => {
|
||||
/footerReference 引用了无效关系/u
|
||||
);
|
||||
});
|
||||
|
||||
it("最终 DOCX 使用媒体输出上限而非模板的 2 MiB 上限", () => {
|
||||
const result = createDynamicReferenceDocx(
|
||||
createBaselineReference(),
|
||||
createOptions(defaultExportConfig)
|
||||
);
|
||||
const entries = unzipSync(result.content);
|
||||
const generated = zipSync(
|
||||
{
|
||||
...entries,
|
||||
"word/media/large-test.bin": randomBytes(3 * 1024 * 1024)
|
||||
},
|
||||
{ level: 0 }
|
||||
);
|
||||
|
||||
expect(generated.byteLength).toBeGreaterThan(2 * 1024 * 1024);
|
||||
expect(validateGeneratedDocx(generated).partCount).toBe(
|
||||
result.partCount + 1
|
||||
);
|
||||
expect(() => validateDynamicReferenceDocx(generated)).toThrow(
|
||||
/大小超过限制/u
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user