feat: add deterministic Diagram IR v2 authoring

This commit is contained in:
2026-09-03 10:05:29 +00:00
parent 305006c8cb
commit 50a07b90a9
31 changed files with 2108 additions and 98 deletions
@@ -0,0 +1,22 @@
import assert from "node:assert/strict";
import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";
import test from "node:test";
import { run as build } from "../build/action.js";
import { run as validate } from "./action.js";
test("validate accepts Draw.io generated with a standard XML declaration", () => {
const dir = mkdtempSync(join(tmpdir(), "drawio-validate-test-"));
const spec = join(dir, "spec.yaml");
const diagram = join(dir, "diagram.drawio");
try {
writeFileSync(spec, "version: 1\nnodes:\n - { id: node, label: Node }\n", "utf8");
build(spec, 0, diagram);
const result = validate(diagram);
assert.deepEqual(result.summary, { pages: 1, valid: true, invalidPages: 0 });
} finally {
rmSync(dir, { recursive: true, force: true });
}
});