展示URL工作流hard block锁
结论:release URL workflow 已展示 hard-block runtime lock 与 promoted blocked family count;baseline 保持 28/28/131/0,Python remap、tool DB、external user-M 仍 locked。
This commit is contained in:
@@ -2562,6 +2562,9 @@ export function createProjectReleaseReadinessArtifactUrlWorkflowSummaryViewModel
|
||||
const missing = arrayOrEmpty(workflow?.missing);
|
||||
const promotionCandidateSummary = objectOrEmpty(workflow?.diagnosticsArtifact?.virtualHalPromotionCandidateSummary);
|
||||
const promotionCandidateSummaryReady = promotionCandidateSummary.ready === true;
|
||||
const validationRows = arrayOrEmpty(workflow?.validation?.rows);
|
||||
const hardBlockRuntimeLock = validationRows.find(({ id }) => id === "hard-block-runtime-lock")?.value;
|
||||
const promotedBlockedFamilyCount = validationRows.find(({ id }) => id === "promoted-blocked-family-count")?.value;
|
||||
const ready = workflow?.ready === true;
|
||||
const statusText = ready ? "Ready" : "Blocked";
|
||||
const detailText = ready
|
||||
@@ -2671,6 +2674,16 @@ export function createProjectReleaseReadinessArtifactUrlWorkflowSummaryViewModel
|
||||
label: "Candidate inventory baseline",
|
||||
value: promotionCandidateSummary.inventoryBaseline ?? "not provided",
|
||||
},
|
||||
{
|
||||
id: "hard-block-runtime-lock",
|
||||
label: "Hard-block runtime lock",
|
||||
value: hardBlockRuntimeLock ?? "not provided",
|
||||
},
|
||||
{
|
||||
id: "promoted-blocked-family-count",
|
||||
label: "Promoted blocked families",
|
||||
value: promotedBlockedFamilyCount ?? "not provided",
|
||||
},
|
||||
{
|
||||
id: "saved-session-diagnostics",
|
||||
label: "Saved-session diagnostics",
|
||||
|
||||
@@ -2557,6 +2557,11 @@ export function createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWo
|
||||
?? {}
|
||||
);
|
||||
const promotionCandidateSummaryReady = promotionCandidateSummary.ready === true;
|
||||
const validationRows = Array.isArray(workflow?.validation?.rows)
|
||||
? workflow.validation.rows
|
||||
: (Array.isArray(workflow?.validation?.validation?.rows) ? workflow.validation.validation.rows : []);
|
||||
const hardBlockRuntimeLock = validationRows.find(({ id }) => id === "hard-block-runtime-lock")?.value;
|
||||
const promotedBlockedFamilyCount = validationRows.find(({ id }) => id === "promoted-blocked-family-count")?.value;
|
||||
const ready = workflow?.ready === true;
|
||||
const promotionFamilyRows = (
|
||||
workflow?.validation?.virtualHalPromotionFamilyRows
|
||||
@@ -2660,6 +2665,16 @@ export function createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWo
|
||||
label: "Candidate inventory baseline",
|
||||
value: promotionCandidateSummary.inventoryBaseline ?? "not provided",
|
||||
},
|
||||
{
|
||||
id: "hard-block-runtime-lock",
|
||||
label: "Hard-block runtime lock",
|
||||
value: hardBlockRuntimeLock ?? "not provided",
|
||||
},
|
||||
{
|
||||
id: "promoted-blocked-family-count",
|
||||
label: "Promoted blocked families",
|
||||
value: promotedBlockedFamilyCount ?? "not provided",
|
||||
},
|
||||
{
|
||||
id: "virtual-hal-promotion-families",
|
||||
label: "Virtual HAL promotion families",
|
||||
|
||||
@@ -981,9 +981,14 @@ TOOL_TABLE = browser-shell-tool.tbl
|
||||
);
|
||||
assertEqual(
|
||||
workflowOverviewReleaseArtifactUrlWorkflowRenderResult.rowCount,
|
||||
8,
|
||||
10,
|
||||
"shell workflow overview release artifact URL workflow render rows",
|
||||
);
|
||||
assertEqual(
|
||||
workflowOverviewReleaseArtifactUrlWorkflowRenderResult.rowIds.includes("hard-block-runtime-lock"),
|
||||
true,
|
||||
"shell workflow overview release artifact URL workflow hard-block lock row",
|
||||
);
|
||||
assertEqual(
|
||||
workflowOverviewReleaseArtifactUrlWorkflowRenderResult.rowIds.includes("mount-result"),
|
||||
true,
|
||||
|
||||
@@ -597,7 +597,7 @@
|
||||
);
|
||||
assertEqual(
|
||||
releaseArtifactUrlWorkflowRenderResult.rowCount,
|
||||
21,
|
||||
23,
|
||||
"workflow overview release artifact URL workflow render rows",
|
||||
);
|
||||
assertEqual(
|
||||
@@ -650,6 +650,16 @@
|
||||
"executed=28 passed=28 skipped=131 unexpected_fail=0",
|
||||
"workflow overview release artifact URL workflow candidate baseline",
|
||||
);
|
||||
assertEqual(
|
||||
releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "hard-block-runtime-lock")?.value,
|
||||
"locked (3 families)",
|
||||
"workflow overview release artifact URL workflow hard-block lock",
|
||||
);
|
||||
assertEqual(
|
||||
releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "promoted-blocked-family-count")?.value,
|
||||
"0 promoted",
|
||||
"workflow overview release artifact URL workflow promoted blocked count",
|
||||
);
|
||||
assertEqual(
|
||||
releaseArtifactUrlWorkflowRenderResult.rowIds.includes("saved-session-diagnostics"),
|
||||
true,
|
||||
|
||||
@@ -178,6 +178,14 @@ assert.equal(
|
||||
readySummary.rows.find(({ id }) => id === "virtual-hal-promotion-candidate-baseline")?.value,
|
||||
"executed=28 passed=28 skipped=131 unexpected_fail=0",
|
||||
);
|
||||
assert.equal(
|
||||
readySummary.rows.find(({ id }) => id === "hard-block-runtime-lock")?.value,
|
||||
"locked (3 families)",
|
||||
);
|
||||
assert.equal(
|
||||
readySummary.rows.find(({ id }) => id === "promoted-blocked-family-count")?.value,
|
||||
"0 promoted",
|
||||
);
|
||||
assert.deepEqual(
|
||||
readySummary.rows
|
||||
.filter(({ id }) => expectedPromotionFamilyRows.some(([familyId]) => familyId === id))
|
||||
@@ -206,6 +214,8 @@ assert.deepEqual(
|
||||
["virtual-hal-promotion-source-file-count", "17 source files"],
|
||||
["virtual-hal-promotion-browser-diagnostics-count", "8 diagnostics-ready"],
|
||||
["virtual-hal-promotion-candidate-baseline", "executed=28 passed=28 skipped=131 unexpected_fail=0"],
|
||||
["hard-block-runtime-lock", "locked (3 families)"],
|
||||
["promoted-blocked-family-count", "0 promoted"],
|
||||
["saved-session-diagnostics", "ready"],
|
||||
["next-command", "none"],
|
||||
["missing", "none"],
|
||||
|
||||
@@ -471,6 +471,8 @@ assert.deepEqual(
|
||||
["virtual-hal-promotion-source-file-count", "not provided"],
|
||||
["virtual-hal-promotion-browser-diagnostics-count", "not provided"],
|
||||
["virtual-hal-promotion-candidate-baseline", "not provided"],
|
||||
["hard-block-runtime-lock", "locked (3 families)"],
|
||||
["promoted-blocked-family-count", "0 promoted"],
|
||||
["saved-session-diagnostics", "not requested"],
|
||||
["next-command", "none"],
|
||||
["missing", "none"],
|
||||
|
||||
@@ -1797,7 +1797,7 @@ const releaseArtifactMountResult = mountIniPanelShellWorkflowOverviewReleaseRead
|
||||
rowsNode: releaseArtifactRowsNode,
|
||||
});
|
||||
assert.equal(releaseArtifactRenderResult.rendered, true);
|
||||
assert.equal(releaseArtifactRenderResult.rowCount, 17);
|
||||
assert.equal(releaseArtifactRenderResult.rowCount, 20);
|
||||
assert.equal(releaseArtifactRenderResult.dataset.handoffScope, "workflow-overview-release-readiness-artifact");
|
||||
assert.equal(
|
||||
releaseArtifactRenderResult.rowIds.includes("gate-execution-manifest"),
|
||||
@@ -1828,7 +1828,7 @@ assert.equal(
|
||||
true,
|
||||
);
|
||||
assert.equal(releaseArtifactMountResult.ready, true);
|
||||
assert.equal(releaseArtifactMountResult.renderResult.rowCount, 17);
|
||||
assert.equal(releaseArtifactMountResult.renderResult.rowCount, 20);
|
||||
assert.deepEqual(
|
||||
validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson("{").missing,
|
||||
["artifact-json"],
|
||||
@@ -1887,7 +1887,7 @@ assert.equal(
|
||||
);
|
||||
assert.equal(releaseArtifactUrlWorkflow.renderState.statusLine, "Ready: No blocking reasons");
|
||||
assert.equal(releaseArtifactUrlWorkflow.mountResult.ready, true);
|
||||
assert.equal(releaseArtifactUrlWorkflow.mountResult.renderResult.rowCount, 17);
|
||||
assert.equal(releaseArtifactUrlWorkflow.mountResult.renderResult.rowCount, 20);
|
||||
const releaseArtifactUrlWorkflowSummary =
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowSummaryViewModel(
|
||||
releaseArtifactUrlWorkflow,
|
||||
@@ -1955,6 +1955,14 @@ assert.equal(
|
||||
releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "virtual-hal-promotion-candidate-baseline")?.value,
|
||||
"executed=28 passed=28 skipped=131 unexpected_fail=0",
|
||||
);
|
||||
assert.equal(
|
||||
releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "hard-block-runtime-lock")?.value,
|
||||
"locked (3 families)",
|
||||
);
|
||||
assert.equal(
|
||||
releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "promoted-blocked-family-count")?.value,
|
||||
"0 promoted",
|
||||
);
|
||||
const promotionCandidateDrilldownViewModel =
|
||||
createIniPanelShellWorkflowOverviewPromotionCandidateDrilldownViewModel(
|
||||
releaseArtifactUrlWorkflowSummary,
|
||||
@@ -2577,7 +2585,7 @@ const releaseArtifactUrlWorkflowMountResult =
|
||||
rowsNode: releaseArtifactUrlWorkflowRowsNode,
|
||||
});
|
||||
assert.equal(releaseArtifactUrlWorkflowRenderResult.rendered, true);
|
||||
assert.equal(releaseArtifactUrlWorkflowRenderResult.rowCount, 25);
|
||||
assert.equal(releaseArtifactUrlWorkflowRenderResult.rowCount, 27);
|
||||
assert.equal(
|
||||
releaseArtifactUrlWorkflowRenderResult.rowIds.includes("browser-diagnostics"),
|
||||
true,
|
||||
@@ -2595,7 +2603,7 @@ assert.equal(
|
||||
true,
|
||||
);
|
||||
assert.equal(releaseArtifactUrlWorkflowMountResult.ready, true);
|
||||
assert.equal(releaseArtifactUrlWorkflowMountResult.renderResult.rowCount, 25);
|
||||
assert.equal(releaseArtifactUrlWorkflowMountResult.renderResult.rowCount, 27);
|
||||
const releaseArtifactUrlWorkflowMissingDom = await loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl({
|
||||
artifactUrl: "/project-release-readiness.json",
|
||||
fetchRef: async () => ({
|
||||
|
||||
Reference in New Issue
Block a user