推进 INI 面板 control-page API manifest predicate
This commit is contained in:
@@ -62,6 +62,9 @@ TOOL_TABLE = browser-tool.tbl
|
||||
const controlDoc = await loadControlPageFrame();
|
||||
const controlPageApi = controlDoc.defaultView.linuxCncIniPanelControlPageApi;
|
||||
const expectedControlPageApiMethods = [
|
||||
"isSupportedControlPageApiManifest",
|
||||
"getControlPageApiSchema",
|
||||
"getControlPageApiManifest",
|
||||
"getControlPageApiMethods",
|
||||
"getControlPageContract",
|
||||
"getControlView",
|
||||
@@ -72,6 +75,9 @@ TOOL_TABLE = browser-tool.tbl
|
||||
"renderControlPage",
|
||||
];
|
||||
if (
|
||||
!controlPageApi?.isSupportedControlPageApiManifest ||
|
||||
!controlPageApi?.getControlPageApiSchema ||
|
||||
!controlPageApi?.getControlPageApiManifest ||
|
||||
!controlPageApi?.getControlPageApiMethods ||
|
||||
!controlPageApi?.getControlView ||
|
||||
!controlPageApi?.getControlPageContract ||
|
||||
@@ -94,6 +100,39 @@ TOOL_TABLE = browser-tool.tbl
|
||||
"control page browser API namespace methods",
|
||||
);
|
||||
|
||||
const controlPageApiSchema = controlPageApi.getControlPageApiSchema();
|
||||
assertEqual(
|
||||
controlPageApiSchema.manifestVersion,
|
||||
1,
|
||||
"control page API schema manifest version",
|
||||
);
|
||||
assertEqual(
|
||||
controlPageApiSchema.fields.includes("readonlyStatusApiManifest"),
|
||||
true,
|
||||
"control page API schema readonly status field",
|
||||
);
|
||||
const controlPageApiManifest = controlPageApi.getControlPageApiManifest();
|
||||
assertEqual(
|
||||
controlPageApi.isSupportedControlPageApiManifest(controlPageApiManifest),
|
||||
true,
|
||||
"control page API supports manifest",
|
||||
);
|
||||
assertEqual(
|
||||
controlPageApi.isSupportedControlPageApiManifest({ ...controlPageApiManifest, apiName: "other" }),
|
||||
false,
|
||||
"control page API rejects unsupported manifest name",
|
||||
);
|
||||
assertEqual(
|
||||
controlPageApiManifest.methods.join(","),
|
||||
expectedControlPageApiMethods.join(","),
|
||||
"control page API manifest methods",
|
||||
);
|
||||
assertEqual(
|
||||
controlPageApiManifest.readonlyStatusApiManifest.apiName,
|
||||
"machine-session-readonly-status",
|
||||
"control page API manifest readonly status API name",
|
||||
);
|
||||
|
||||
const controlPageContract = controlPageApi.getControlPageContract();
|
||||
assertEqual(
|
||||
controlPageContract.methodNames.join(","),
|
||||
|
||||
Reference in New Issue
Block a user