暴露 workflow overview artifact summary 浏览器 API

This commit is contained in:
2026-06-16 11:22:12 +08:00
parent 82bb02de15
commit 61779cad55
16 changed files with 171 additions and 72 deletions

View File

@@ -116,6 +116,7 @@ TOOL_TABLE = browser-shell-tool.tbl
!launchApi?.getWorkflowOverviewReadiness ||
!launchApi?.mountWorkflowOverviewEmbedding ||
!launchApi?.loadWorkflowOverviewReleaseReadinessArtifactUrl ||
!launchApi?.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel ||
!launchApi?.getWorkflowOverviewEmbeddingReport ||
!launchApi?.getWorkflowOverviewEmbeddingDisplayViewModel ||
!launchApi?.getWorkflowOverviewEmbeddingRenderState ||
@@ -314,39 +315,18 @@ TOOL_TABLE = browser-shell-tool.tbl
const workflowOverviewReadiness = launchApi.getWorkflowOverviewReadiness({
overviewApi: workflowOverviewApi,
});
const workflowOverviewReleaseArtifactJson = await fetch("../../tests/fixtures/project-release-readiness-ready.json")
.then((response) => response.text());
const workflowOverviewReleaseArtifactValidation = workflowOverviewApi
.validateWorkflowOverviewReleaseReadinessArtifactJson(JSON.stringify({
apiName: "project-release-readiness-report",
reportVersion: 1,
phase: "ready",
ready: true,
missing: [],
releaseGate: {
command: "wasm-port/tests/host/verify_project_release_gate.sh",
passed: true,
expectedOutput: "project_release_gate=ok",
},
simConfigInventory: {
executed: 28,
passed: 28,
skipped: 131,
unexpectedFail: 0,
},
blockedRuntimeFamilies: [
"L4-USER-M-PROCESS",
"L4-TOOL-DB",
"L4-PYTHON-REMAP",
],
promotedBlockedFamilies: [],
gates: Array.from({ length: 10 }, (_, index) => ({ id: `gate-${index}`, passed: true })),
rows: [
{
id: "project-release-gate",
label: "Project release gate",
value: "passed",
},
],
}));
.validateWorkflowOverviewReleaseReadinessArtifactJson(workflowOverviewReleaseArtifactJson);
const workflowOverviewReleaseArtifactSummary = workflowOverviewApi
.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel(
workflowOverviewReleaseArtifactValidation,
);
const launchReleaseArtifactSummary = launchApi
.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel(
workflowOverviewReleaseArtifactValidation,
);
const workflowOverviewReleaseArtifactDisplay = workflowOverviewApi
.getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel(workflowOverviewReleaseArtifactValidation);
const workflowOverviewReleaseArtifactRenderState = workflowOverviewApi
@@ -463,6 +443,16 @@ TOOL_TABLE = browser-shell-tool.tbl
true,
"shell workflow overview release artifact validation readiness",
);
assertEqual(
workflowOverviewReleaseArtifactSummary.statusLine,
"Ready: Artifact evidence complete",
"shell workflow overview release artifact validation summary",
);
assertEqual(
launchReleaseArtifactSummary.statusLine,
workflowOverviewReleaseArtifactSummary.statusLine,
"launch release artifact validation summary",
);
assertEqual(
workflowOverviewReleaseArtifactDomReadiness.ready,
true,

View File

@@ -36,6 +36,7 @@
!workflowApi?.getWorkflowOverviewPersistenceSummary ||
!workflowApi?.validateWorkflowOverviewReleaseReadinessArtifactJson ||
!workflowApi?.loadWorkflowOverviewReleaseReadinessArtifactUrl ||
!workflowApi?.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel ||
!workflowApi?.getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel ||
!workflowApi?.getWorkflowOverviewReleaseReadinessArtifactRenderState ||
!workflowApi?.getWorkflowOverviewReleaseReadinessArtifactDomContract ||
@@ -70,38 +71,13 @@
const sessionReadinessReport = workflowApi.getWorkflowOverviewSessionReadinessReport();
const apiSurfaceInventory = workflowApi.getWorkflowOverviewApiSurfaceInventory();
const persistenceSummary = workflowApi.getWorkflowOverviewPersistenceSummary();
const releaseArtifactValidation = workflowApi.validateWorkflowOverviewReleaseReadinessArtifactJson(JSON.stringify({
apiName: "project-release-readiness-report",
reportVersion: 1,
phase: "ready",
ready: true,
missing: [],
releaseGate: {
command: "wasm-port/tests/host/verify_project_release_gate.sh",
passed: true,
expectedOutput: "project_release_gate=ok",
},
simConfigInventory: {
executed: 28,
passed: 28,
skipped: 131,
unexpectedFail: 0,
},
blockedRuntimeFamilies: [
"L4-USER-M-PROCESS",
"L4-TOOL-DB",
"L4-PYTHON-REMAP",
],
promotedBlockedFamilies: [],
gates: Array.from({ length: 10 }, (_, index) => ({ id: `gate-${index}`, passed: true })),
rows: [
{
id: "project-release-gate",
label: "Project release gate",
value: "passed",
},
],
}));
const releaseArtifactJson = await fetch("../../tests/fixtures/project-release-readiness-ready.json")
.then((response) => response.text());
const releaseArtifactValidation = workflowApi.validateWorkflowOverviewReleaseReadinessArtifactJson(
releaseArtifactJson,
);
const releaseArtifactValidationSummary = workflowApi
.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel(releaseArtifactValidation);
const releaseArtifactDisplay = workflowApi.getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel(
releaseArtifactValidation,
);
@@ -162,6 +138,11 @@
);
assertEqual(releaseArtifactValidation.ready, true, "workflow overview release artifact validation readiness");
assertEqual(releaseArtifactValidation.gateCount, 10, "workflow overview release artifact validation gates");
assertEqual(
releaseArtifactValidationSummary.statusLine,
"Ready: Artifact evidence complete",
"workflow overview release artifact validation summary",
);
assertEqual(releaseArtifactDisplay.statusText, "Ready", "workflow overview release artifact display status");
assertEqual(releaseArtifactRenderState.statusLine, "Ready: No blocking reasons", "workflow overview release artifact render status");
assertEqual(
@@ -278,9 +259,9 @@
});
assertEqual(releaseArtifactDomReadinessReady.ready, true, "workflow overview release artifact DOM readiness");
assertEqual(releaseArtifactRenderResult.rendered, true, "workflow overview release artifact render result");
assertEqual(releaseArtifactRenderResult.rowCount, 3, "workflow overview release artifact render row count");
assertEqual(releaseArtifactRenderResult.rowCount, 6, "workflow overview release artifact render row count");
assertEqual(releaseArtifactMountResult.ready, true, "workflow overview release artifact mount readiness");
assertEqual(releaseArtifactMountResult.renderResult.rowCount, 3, "workflow overview release artifact mount rows");
assertEqual(releaseArtifactMountResult.renderResult.rowCount, 6, "workflow overview release artifact mount rows");
assertEqual(releaseArtifactUrlWorkflow.ready, true, "workflow overview release artifact URL workflow readiness");
assertEqual(releaseArtifactUrlWorkflow.httpStatus, 200, "workflow overview release artifact URL workflow status");
assertEqual(releaseArtifactUrlWorkflow.mountResult.ready, true, "workflow overview release artifact URL workflow mount");

View File

@@ -66,7 +66,7 @@
assertEqual(readyWorkflow.validation.gateCount, 10, "ready workflow gate count");
assertEqual(readyWorkflow.renderState.statusLine, "Ready: No blocking reasons", "ready workflow status");
assertEqual(readyWorkflow.mountResult.ready, true, "ready workflow mount readiness");
assertEqual(readyWorkflow.mountResult.renderResult.rowCount, 3, "ready workflow mount rows");
assertEqual(readyWorkflow.mountResult.renderResult.rowCount, 6, "ready workflow mount rows");
assertEqual(
releaseArtifactStatus.textContent,
"Ready: No blocking reasons",