feat: 实现 DOCX 媒体预处理与跨端 PNG 捕获
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
DOCX_MIME_TYPE,
|
||||
DOCX_MEDIA_RASTER_SCALE,
|
||||
DOCX_PANDOC_VERSION,
|
||||
MAXIMUM_DOCX_MEDIA_EDGE_PIXELS,
|
||||
MAXIMUM_DOCX_MARKDOWN_LENGTH,
|
||||
createDocxFileName,
|
||||
defaultExportConfig,
|
||||
docxCapabilitySchema,
|
||||
docxMediaCapturePlanSchema,
|
||||
docxExportErrorResponseSchema,
|
||||
docxExportRequestSchema
|
||||
} from "../src/index.js";
|
||||
@@ -111,4 +114,54 @@ describe("DOCX 共享协议", () => {
|
||||
retryable: false
|
||||
});
|
||||
});
|
||||
|
||||
it("校验 DOCX PNG 媒体捕获计划", () => {
|
||||
expect(DOCX_MEDIA_RASTER_SCALE).toBe(3.125);
|
||||
expect(MAXIMUM_DOCX_MEDIA_EDGE_PIXELS).toBe(4096);
|
||||
expect(
|
||||
docxMediaCapturePlanSchema.parse({
|
||||
targets: [
|
||||
{
|
||||
id: "docx-media-1",
|
||||
kind: "mermaid",
|
||||
ordinal: 1,
|
||||
kindOrdinal: 1,
|
||||
altText: "流程图",
|
||||
caption: "处理流程",
|
||||
displayWidthPx: 640,
|
||||
displayHeightPx: 320,
|
||||
captureX: 20,
|
||||
captureY: 120,
|
||||
captureWidthPx: 640,
|
||||
captureHeightPx: 320,
|
||||
rasterScale: 3.125
|
||||
}
|
||||
],
|
||||
echartsErrors: [],
|
||||
mermaidErrors: []
|
||||
}).targets
|
||||
).toHaveLength(1);
|
||||
expect(
|
||||
docxMediaCapturePlanSchema.safeParse({
|
||||
targets: [
|
||||
{
|
||||
id: "../越界",
|
||||
kind: "image",
|
||||
ordinal: 1,
|
||||
kindOrdinal: 1,
|
||||
altText: "",
|
||||
displayWidthPx: 100,
|
||||
displayHeightPx: 100,
|
||||
captureX: 0,
|
||||
captureY: 0,
|
||||
captureWidthPx: 100,
|
||||
captureHeightPx: 100,
|
||||
rasterScale: 3.125
|
||||
}
|
||||
],
|
||||
echartsErrors: [],
|
||||
mermaidErrors: []
|
||||
}).success
|
||||
).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user