推进 INI 面板浏览器 control-page contract 暴露

This commit is contained in:
2026-06-15 06:03:44 +08:00
parent 41caecf116
commit 37b79c1d1a
5 changed files with 104 additions and 0 deletions

View File

@@ -63,6 +63,7 @@ TOOL_TABLE = browser-tool.tbl
const controlPageApi = controlDoc.defaultView.linuxCncIniPanelControlPageApi;
if (
!controlPageApi?.getControlView ||
!controlPageApi?.getControlPageContract ||
!controlPageApi?.getPanelApi ||
!controlPageApi?.loadControlPageSessionState ||
!controlPageApi?.refreshControlPage ||
@@ -71,6 +72,33 @@ TOOL_TABLE = browser-tool.tbl
throw new Error("control page API namespace did not expose control helpers");
}
const controlPageContract = controlPageApi.getControlPageContract();
assertEqual(
controlPageContract.methodNames.join(","),
"createController,loadSessionState,readStatus,refresh,renderView",
"control page contract methods",
);
assertEqual(
controlPageContract.readonlyStatusApiManifest.apiName,
"machine-session-readonly-status",
"control page contract readonly status API name",
);
assertEqual(
controlPageContract.readonlyStatusApiMethodNames.join(","),
"readStatus",
"control page contract readonly status API methods",
);
assertEqual(
controlPageContract.relatedControlPageMethods.join(","),
"loadSessionState,readStatus,refresh,renderView",
"control page contract related methods",
);
assertEqual(
controlPageContract.readonlyStatusApiStatusFields.join(","),
"stateBundle,workflowStatus,overview,controlView,report,runReadiness,run,session,status",
"control page contract readonly status fields",
);
const panelFrame = controlDoc.getElementById("panel-frame");
const panelDoc = await waitFor(
() => panelFrame?.contentDocument,