import assert from "node:assert/strict"; import { SIM_DISPLAY_FAMILY_CATALOG, SIM_DISPLAY_FAMILY_COUNTS } from "./sim-display-families.mjs"; import { displayFamilyForCase, renderDisplayFamily } from "./display-family.mjs"; assert.equal(SIM_DISPLAY_FAMILY_CATALOG.length, 235); assert.equal(SIM_DISPLAY_FAMILY_COUNTS.axis, 85); assert.equal(SIM_DISPLAY_FAMILY_COUNTS.qtvcp, 61); assert.equal(displayFamilyForCase("linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini").family, "axis"); assert.equal(displayFamilyForCase("linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini").family, "qtvcp"); assert.equal(displayFamilyForCase("linuxcnc/configs/sim/touchy/touchy.ini").family, "touchy"); class Node { constructor(tag) { this.tagName = tag; this.children = []; this.className = ""; this.textContent = ""; } append(...nodes) { this.children.push(...nodes); } } const document = { createElement: (tag) => new Node(tag) }; const panel = renderDisplayFamily(document, { casePath: "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini" }); assert.equal(panel.className, "display-family"); assert.match(panel.children[0].textContent, /AXIS/); assert.ok(panel.children[2].children.length >= 5); console.log(JSON.stringify({ schema: "display-family-s8-07-sample.v1", status: "verified", case_count: SIM_DISPLAY_FAMILY_CATALOG.length, counts: SIM_DISPLAY_FAMILY_COUNTS, selected: displayFamilyForCase("linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini") }));