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; $defs: Record; }; 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; 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); });