Upload project files
This commit is contained in:
28
kdl-wasm/web/tests/docs/flowAssetCoverage.test.ts
Normal file
28
kdl-wasm/web/tests/docs/flowAssetCoverage.test.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { join } from "node:path";
|
||||
import { FLOW_ASSET_MAPPINGS, validateFlowAssetCoverage } from "../../src/docs/index.js";
|
||||
|
||||
const FLOW_ROOT = join(process.cwd(), "work/doc/通用机器人项目功能与数据流程图-png");
|
||||
|
||||
describe("flow asset coverage", () => {
|
||||
it("maps every Mermaid and PNG flow asset to tasks and evidence", () => {
|
||||
const result = validateFlowAssetCoverage(FLOW_ROOT);
|
||||
|
||||
expect(result.ok).toBe(true);
|
||||
expect(result.assets.map((asset) => asset.id)).toEqual(["flow-01", "flow-02", "flow-03", "flow-04", "flow-05"]);
|
||||
expect(result.assets.every((asset) => asset.mermaidBytes > 0 && asset.pngBytes > 0)).toBe(true);
|
||||
expect(result.assets.every((asset) => asset.evidence === "EV-211")).toBe(true);
|
||||
expect(result.assets.every((asset) => asset.tasks.some((task) => task.startsWith("KW-211")))).toBe(true);
|
||||
expect(result.diagnostics).toEqual([]);
|
||||
});
|
||||
|
||||
it("keeps the expected coverage contract stable", () => {
|
||||
expect(FLOW_ASSET_MAPPINGS).toEqual([
|
||||
expect.objectContaining({ id: "flow-01", tasks: expect.arrayContaining(["KW-211.1"]) }),
|
||||
expect.objectContaining({ id: "flow-02", tasks: expect.arrayContaining(["KW-211.2"]) }),
|
||||
expect.objectContaining({ id: "flow-03", tasks: expect.arrayContaining(["KW-211.3"]) }),
|
||||
expect.objectContaining({ id: "flow-04", tasks: expect.arrayContaining(["KW-211.4"]) }),
|
||||
expect.objectContaining({ id: "flow-05", tasks: expect.arrayContaining(["KW-211.5"]) })
|
||||
]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user