推进 INI 面板 ui shell export

This commit is contained in:
2026-06-14 23:21:00 +08:00
parent 77d32a3f17
commit fc4fb54a20
6 changed files with 131 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
import assert from "node:assert/strict";
import {
INI_PANEL_ENTRIES,
createMachineSessionControlPageController,
getIniPanelEntryByHref,
getIniPanelEntryManifest,
renderMachineSessionControlView,
} from "../../../runtime/ui/ini-panel/ui-shell.js";
assert.deepEqual(getIniPanelEntryManifest(), INI_PANEL_ENTRIES);
assert.equal(getIniPanelEntryByHref("./index.html")?.id, "edit-run");
assert.equal(typeof createMachineSessionControlPageController, "function");
assert.equal(typeof renderMachineSessionControlView, "function");
const panelFrame = {
contentWindow: {
linuxCncIniPanelApi: {
getMachineSessionControlView: () => ({
status: {
lastAction: "run-gcode",
runStatus: "ok",
error: null,
},
sections: [],
}),
},
},
addEventListener() {},
};
const statusNode = { textContent: "" };
const viewNode = { textContent: "" };
let renderedView = null;
const controller = createMachineSessionControlPageController({
panelFrame,
statusNode,
viewNode,
renderControlView: (_container, view) => {
renderedView = view;
return { rendered: true };
},
});
assert.deepEqual(controller.render(), { rendered: true });
assert.equal(statusNode.textContent, "run-gcode | ok | -");
assert.equal(renderedView.status.runStatus, "ok");
console.log("ini_panel_ui_shell_node_smoke=ok");

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "$0")/../../.." && pwd)"
node "$ROOT_DIR/tests/ui/node/verify_ini_panel_ui_shell.mjs"

View File

@@ -11,5 +11,6 @@ ROOT_DIR="$(cd "$(dirname "$0")/../../.." && pwd)"
"$ROOT_DIR/tests/ui/node/verify_ini_panel_state_summary.sh"
"$ROOT_DIR/tests/ui/node/verify_ini_panel_control_page_controller.sh"
"$ROOT_DIR/tests/ui/node/verify_ini_panel_entry_manifest.sh"
"$ROOT_DIR/tests/ui/node/verify_ini_panel_ui_shell.sh"
echo "ui_node_smokes=ok"