收口 INI 面板 persistence summary 发布门禁
This commit is contained in:
@@ -101,6 +101,7 @@
|
||||
!launchApi?.getShellSessionHandoffPackageMountRenderState ||
|
||||
!launchApi?.getShellSessionReadinessWorkflowReport ||
|
||||
!launchApi?.getShellApiSurfaceInventory ||
|
||||
!launchApi?.getMachineSessionPersistenceSummary ||
|
||||
!launchApi?.renderShellSessionHandoffMountState ||
|
||||
!launchApi?.getWorkflowOverviewContract ||
|
||||
!launchApi?.getWorkflowOverviewReadiness ||
|
||||
@@ -182,6 +183,7 @@
|
||||
const shellSessionHandoffPackageMountRenderState = launchApi.getShellSessionHandoffPackageMountRenderState();
|
||||
const shellSessionReadinessWorkflowReport = launchApi.getShellSessionReadinessWorkflowReport();
|
||||
const shellApiSurfaceInventory = launchApi.getShellApiSurfaceInventory();
|
||||
const launchPersistenceSummary = launchApi.getMachineSessionPersistenceSummary();
|
||||
const workflowOverviewContract = launchApi.getWorkflowOverviewContract();
|
||||
assertEqual(
|
||||
shellIntegrationSchema.manifestVersion,
|
||||
@@ -448,6 +450,21 @@
|
||||
3,
|
||||
"shell API surface inventory session readiness rows",
|
||||
);
|
||||
assertEqual(
|
||||
shellApiSurfaceInventory.counts.persistenceSummaryRows,
|
||||
7,
|
||||
"shell API surface inventory persistence summary rows",
|
||||
);
|
||||
assertEqual(
|
||||
launchPersistenceSummary.apiName,
|
||||
"machine-session-persistence-summary",
|
||||
"launch API persistence summary API",
|
||||
);
|
||||
assertEqual(
|
||||
launchPersistenceSummary.rows.length,
|
||||
7,
|
||||
"launch API persistence summary rows",
|
||||
);
|
||||
assertEqual(
|
||||
workflowOverviewContract.pageHref,
|
||||
"./workflow-overview.html",
|
||||
@@ -709,12 +726,12 @@
|
||||
assertEqual(workflowOverviewEmbedding.pageHref, "./workflow-overview.html", "workflow overview embedding page");
|
||||
assertEqual(workflowOverviewEmbedding.ready, false, "workflow overview embedding default readiness");
|
||||
assertEqual(workflowOverviewEmbedding.renderState.dataset.handoffScope, "workflow", "workflow overview embedding scope");
|
||||
assertEqual(workflowOverviewEmbedding.mountResult.renderResult.rowCount, 5, "workflow overview embedding rows");
|
||||
assertEqual(workflowOverviewEmbedding.mountResult.renderResult.rowCount, 8, "workflow overview embedding rows");
|
||||
assertEqual(workflowOverviewEmbedding.error, null, "workflow overview embedding error");
|
||||
assertEqual(workflowOverviewEmbeddingReport.apiName, "ini-panel-shell-workflow-overview-embedding-report", "workflow overview embedding report API name");
|
||||
assertEqual(workflowOverviewEmbeddingReport.ready, false, "workflow overview embedding report readiness");
|
||||
assertEqual(workflowOverviewEmbeddingReport.missingMethods.join(","), "", "workflow overview embedding report missing methods");
|
||||
assertEqual(workflowOverviewEmbeddingReport.renderRowCount, 5, "workflow overview embedding report row count");
|
||||
assertEqual(workflowOverviewEmbeddingReport.renderRowCount, 8, "workflow overview embedding report row count");
|
||||
assertEqual(workflowOverviewEmbeddingReport.rows.length, 6, "workflow overview embedding report rows");
|
||||
assertEqual(workflowOverviewEmbeddingDisplay.title, "Workflow overview embedding", "workflow overview embedding display title");
|
||||
assertEqual(workflowOverviewEmbeddingDisplay.statusText, "Blocked", "workflow overview embedding display status");
|
||||
|
||||
@@ -372,11 +372,11 @@ TOOL_TABLE = browser-shell-tool.tbl
|
||||
assertEqual(workflowOverviewReadiness.missing.join(","), "", "shell workflow overview iframe missing methods");
|
||||
assertEqual(workflowOverviewEmbedding.apiName, "ini-panel-shell-workflow-overview-embedding", "shell workflow overview embedding API");
|
||||
assertEqual(workflowOverviewEmbedding.renderState.dataset.handoffScope, "workflow", "shell workflow overview embedding scope");
|
||||
assertEqual(workflowOverviewEmbedding.mountResult.renderResult.rowCount, 5, "shell workflow overview embedding rows");
|
||||
assertEqual(workflowOverviewEmbedding.mountResult.renderResult.rowCount, 8, "shell workflow overview embedding rows");
|
||||
assertEqual(workflowOverviewEmbedding.error, null, "shell workflow overview embedding error");
|
||||
assertEqual(workflowOverviewEmbeddingReport.ready, false, "shell workflow overview embedding report readiness");
|
||||
assertEqual(workflowOverviewEmbeddingReport.rows.length, 6, "shell workflow overview embedding report rows");
|
||||
assertEqual(workflowOverviewEmbeddingReport.renderRowCount, 5, "shell workflow overview embedding report row count");
|
||||
assertEqual(workflowOverviewEmbeddingReport.renderRowCount, 8, "shell workflow overview embedding report row count");
|
||||
assertEqual(workflowOverviewEmbeddingReport.error, null, "shell workflow overview embedding report error");
|
||||
assertEqual(workflowOverviewEmbeddingDisplay.statusText, "Blocked", "shell workflow overview embedding display status");
|
||||
assertEqual(workflowOverviewEmbeddingDisplay.rows.length, 6, "shell workflow overview embedding display rows");
|
||||
@@ -508,16 +508,27 @@ TOOL_TABLE = browser-shell-tool.tbl
|
||||
const readonlyStatusResult = launchApi.readShellSessionHandoffStatusFromControlPage({
|
||||
controlPageApi,
|
||||
});
|
||||
const workflowSummaryResult = launchApi.getShellSessionHandoffWorkflowSummary({
|
||||
const baseWorkflowSummaryResult = launchApi.getShellSessionHandoffWorkflowSummary({
|
||||
mountWorkflow: readyMountWorkflow,
|
||||
controlPageMountWorkflow: readyControlPageMountWorkflow,
|
||||
readonlyStatusResult,
|
||||
});
|
||||
const sessionReadinessWorkflowReport = launchApi.getShellSessionReadinessWorkflowReport({
|
||||
workflowSummary: workflowSummaryResult,
|
||||
workflowSummary: baseWorkflowSummaryResult,
|
||||
});
|
||||
const shellApiSurfaceInventory = launchApi.getShellApiSurfaceInventory({
|
||||
sessionReadinessWorkflowReport,
|
||||
persistenceSummary: panelDoc.defaultView.linuxCncIniPanelApi.getMachineSessionPersistenceSummary(),
|
||||
});
|
||||
const persistenceSummary = panelDoc.defaultView.linuxCncIniPanelApi.getMachineSessionPersistenceSummary({
|
||||
readonlyStatus,
|
||||
});
|
||||
const workflowSummaryResult = launchApi.getShellSessionHandoffWorkflowSummary({
|
||||
mountWorkflow: readyMountWorkflow,
|
||||
controlPageMountWorkflow: readyControlPageMountWorkflow,
|
||||
readonlyStatusResult,
|
||||
persistenceSummary,
|
||||
apiSurfaceInventory: shellApiSurfaceInventory,
|
||||
});
|
||||
const workflowDisplayResult = launchApi.getShellSessionHandoffWorkflowDisplayViewModel(
|
||||
workflowSummaryResult,
|
||||
@@ -576,6 +587,21 @@ TOOL_TABLE = browser-shell-tool.tbl
|
||||
3,
|
||||
"shell handoff API surface inventory session readiness rows",
|
||||
);
|
||||
assertEqual(
|
||||
shellApiSurfaceInventory.counts.persistenceSummaryRows,
|
||||
7,
|
||||
"shell handoff API surface inventory persistence summary rows",
|
||||
);
|
||||
assertEqual(
|
||||
workflowSummaryResult.rows.some((row) => row.id === "persistence-summary" && row.value === "ready: 7 rows"),
|
||||
true,
|
||||
"shell handoff workflow summary persistence summary row",
|
||||
);
|
||||
assertEqual(
|
||||
workflowSummaryResult.rows.some((row) => row.id === "api-surface-inventory" && row.value === "ready: 6 rows"),
|
||||
true,
|
||||
"shell handoff workflow summary API surface inventory row",
|
||||
);
|
||||
assertEqual(
|
||||
workflowSummaryResult.sessionReadiness.ready,
|
||||
true,
|
||||
@@ -595,7 +621,7 @@ TOOL_TABLE = browser-shell-tool.tbl
|
||||
assertEqual(workflowRenderState.dataset.handoffScope, "workflow", "shell handoff workflow render-state scope");
|
||||
assertEqual(externalWorkflowDomReadiness.ready, true, "shell handoff workflow DOM readiness");
|
||||
assertEqual(workflowDomMountResult.phase, "ready", "shell handoff workflow DOM mount phase");
|
||||
assertEqual(workflowDomMountResult.renderResult.rowCount, 6, "shell handoff workflow DOM mount rows");
|
||||
assertEqual(workflowDomMountResult.renderResult.rowCount, 8, "shell handoff workflow DOM mount rows");
|
||||
assertEqual(
|
||||
document.querySelector("[data-external-shell-workflow]").dataset.handoffScope,
|
||||
"workflow",
|
||||
|
||||
@@ -376,6 +376,9 @@ TOOL_TABLE = browser-tool.tbl
|
||||
!uiApi?.getMachineSessionStateReport ||
|
||||
!uiApi?.getMachineSessionStateReportExport ||
|
||||
!uiApi?.getMachineSessionWorkflowStatus ||
|
||||
!uiApi?.getMachineSessionPersistenceSummary ||
|
||||
!uiApi?.getMachineSessionPersistenceDisplayViewModel ||
|
||||
!uiApi?.getMachineSessionPersistenceRenderState ||
|
||||
!uiApi?.renderMachineSessionControlView
|
||||
) {
|
||||
throw new Error("INI panel API namespace did not expose state getters");
|
||||
@@ -813,6 +816,44 @@ TOOL_TABLE = browser-tool.tbl
|
||||
2,
|
||||
"UI machine session workflow status canonical event count",
|
||||
);
|
||||
const machineSessionPersistenceSummary = uiApi.getMachineSessionPersistenceSummary();
|
||||
assertEqual(
|
||||
machineSessionPersistenceSummary.apiName,
|
||||
"machine-session-persistence-summary",
|
||||
"UI machine session persistence summary API name",
|
||||
);
|
||||
assertEqual(
|
||||
machineSessionPersistenceSummary.ready,
|
||||
true,
|
||||
"UI machine session persistence summary readiness",
|
||||
);
|
||||
assertEqual(
|
||||
machineSessionPersistenceSummary.rows.find((row) => row.id === "machine-files")?.value,
|
||||
"ini, parameters, tool-table, g-code",
|
||||
"UI machine session persistence summary machine files",
|
||||
);
|
||||
assertEqual(
|
||||
machineSessionPersistenceSummary.rows.find((row) => row.id === "session-load")?.value,
|
||||
"loaded: /work/session-machine.ini",
|
||||
"UI machine session persistence summary session load",
|
||||
);
|
||||
const machineSessionPersistenceDisplay = uiApi.getMachineSessionPersistenceDisplayViewModel();
|
||||
assertEqual(
|
||||
machineSessionPersistenceDisplay.statusText,
|
||||
"Ready",
|
||||
"UI machine session persistence display status",
|
||||
);
|
||||
const machineSessionPersistenceRenderState = uiApi.getMachineSessionPersistenceRenderState();
|
||||
assertEqual(
|
||||
machineSessionPersistenceRenderState.statusLine,
|
||||
"Ready: No missing persistence requirements",
|
||||
"UI machine session persistence render-state status",
|
||||
);
|
||||
assertEqual(
|
||||
machineSessionPersistenceRenderState.dataset.persistenceScope,
|
||||
"opfs-session",
|
||||
"UI machine session persistence render-state scope",
|
||||
);
|
||||
const machineSessionStateBundle = uiApi.getMachineSessionStateBundle();
|
||||
assertEqual(
|
||||
machineSessionStateBundle.report.status.lastAction,
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
!workflowApi?.getWorkflowOverviewSummary ||
|
||||
!workflowApi?.getWorkflowOverviewSessionReadinessReport ||
|
||||
!workflowApi?.getWorkflowOverviewApiSurfaceInventory ||
|
||||
!workflowApi?.getWorkflowOverviewPersistenceSummary ||
|
||||
!workflowApi?.getWorkflowOverviewDomContract ||
|
||||
!workflowApi?.getWorkflowOverviewDomReadiness ||
|
||||
!workflowApi?.renderWorkflowOverview ||
|
||||
@@ -60,6 +61,7 @@
|
||||
const summary = workflowApi.getWorkflowOverviewSummary();
|
||||
const sessionReadinessReport = workflowApi.getWorkflowOverviewSessionReadinessReport();
|
||||
const apiSurfaceInventory = workflowApi.getWorkflowOverviewApiSurfaceInventory();
|
||||
const persistenceSummary = workflowApi.getWorkflowOverviewPersistenceSummary();
|
||||
const domContract = workflowApi.getWorkflowOverviewDomContract();
|
||||
const domReadiness = workflowApi.getWorkflowOverviewDomReadiness();
|
||||
const renderResult = workflowApi.renderWorkflowOverview();
|
||||
@@ -93,19 +95,30 @@
|
||||
"ini-panel-shell-api-surface-inventory",
|
||||
"workflow overview API surface inventory API name",
|
||||
);
|
||||
assertEqual(apiSurfaceInventory.rows.length, 5, "workflow overview API surface inventory rows");
|
||||
assertEqual(apiSurfaceInventory.rows.length, 6, "workflow overview API surface inventory rows");
|
||||
assertEqual(
|
||||
apiSurfaceInventory.counts.persistenceSummaryRows,
|
||||
7,
|
||||
"workflow overview API surface inventory persistence summary rows",
|
||||
);
|
||||
assertEqual(
|
||||
persistenceSummary.apiName,
|
||||
"machine-session-persistence-summary",
|
||||
"workflow overview persistence summary API name",
|
||||
);
|
||||
assertEqual(persistenceSummary.rows.length, 7, "workflow overview persistence summary rows");
|
||||
assertEqual(displayViewModel.title, "Shell handoff workflow", "workflow overview display title");
|
||||
assertEqual(renderState.renderStateVersion, 1, "workflow overview render-state version");
|
||||
assertEqual(renderState.dataset.handoffScope, "workflow", "workflow overview render-state scope");
|
||||
assertEqual(domContract.selectors.mount, "[data-handoff-workflow]", "workflow overview DOM contract mount selector");
|
||||
assertEqual(domReadiness.ready, true, "workflow overview DOM readiness");
|
||||
assertEqual(renderResult.rendered, true, "workflow overview render result");
|
||||
assertEqual(renderResult.rowCount, 5, "workflow overview render row count");
|
||||
assertEqual(renderResult.rowCount, 8, "workflow overview render row count");
|
||||
assertEqual(mountResult.ready, false, "workflow overview mount result readiness");
|
||||
assertEqual(mountResult.renderResult.rendered, true, "workflow overview mount result rendered");
|
||||
assertEqual(embeddingReport.apiName, "ini-panel-shell-workflow-overview-embedding-report", "workflow overview embedding report API name");
|
||||
assertEqual(embeddingReport.ready, false, "workflow overview embedding report readiness");
|
||||
assertEqual(embeddingReport.renderRowCount, 5, "workflow overview embedding report row count");
|
||||
assertEqual(embeddingReport.renderRowCount, 8, "workflow overview embedding report row count");
|
||||
assertEqual(embeddingReport.rows.length, 6, "workflow overview embedding report rows");
|
||||
assertEqual(embeddingDisplay.title, "Workflow overview embedding", "workflow overview embedding display title");
|
||||
assertEqual(embeddingDisplay.statusText, "Blocked", "workflow overview embedding display status");
|
||||
@@ -191,6 +204,16 @@
|
||||
true,
|
||||
"workflow overview DOM blocking reasons row",
|
||||
);
|
||||
assertEqual(
|
||||
workflowDoc.querySelector('[data-handoff-workflow-value="api-surface-inventory"]').textContent,
|
||||
"ready: 6 rows",
|
||||
"workflow overview DOM API surface inventory row",
|
||||
);
|
||||
assertEqual(
|
||||
workflowDoc.querySelector('[data-handoff-workflow-value="persistence-summary"]').textContent,
|
||||
"waiting: 5 missing",
|
||||
"workflow overview DOM persistence summary row",
|
||||
);
|
||||
|
||||
document.getElementById("status").textContent = "browser_ini_workflow_overview_smoke=ok";
|
||||
console.log("browser_ini_workflow_overview_smoke=ok");
|
||||
|
||||
Reference in New Issue
Block a user