feat: add deterministic Diagram IR v2 authoring
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { readFileSync } from "node:fs";
|
||||
import test from "node:test";
|
||||
|
||||
const schemaUrl = new URL("../../../schemas/diagram-ir-v2.schema.json", import.meta.url);
|
||||
|
||||
test("published IR v2 schema defines pages, geometry, waypoints, and provenance", () => {
|
||||
const schema = JSON.parse(readFileSync(schemaUrl, "utf8")) as {
|
||||
properties: Record<string, unknown>;
|
||||
$defs: Record<string, unknown>;
|
||||
};
|
||||
assert.ok(schema.properties.pages);
|
||||
assert.ok(schema.properties.provenance);
|
||||
assert.ok(schema.$defs.geometry);
|
||||
const geometry = schema.$defs.geometry as { required?: string[]; properties?: Record<string, unknown>; allOf?: unknown };
|
||||
assert.equal(geometry.allOf, undefined);
|
||||
assert.deepEqual(geometry.required, ["x", "y", "width", "height"]);
|
||||
assert.ok(geometry.properties?.width);
|
||||
assert.ok(schema.$defs.point);
|
||||
assert.ok(schema.$defs.page);
|
||||
const page = schema.$defs.page as { properties?: { title?: { pattern?: string } } };
|
||||
const node = schema.$defs.node as { properties?: { label?: { pattern?: string } } };
|
||||
assert.equal(page.properties?.title?.pattern, "\\S");
|
||||
assert.equal(node.properties?.label?.pattern, "\\S");
|
||||
assert.ok(schema.$defs.edge);
|
||||
});
|
||||
Reference in New Issue
Block a user