feat(web): 新增 IwoooS 全產品只讀套用快照
All checks were successful
CD Pipeline / tests (push) Successful in 1m21s
Code Review / ai-code-review (push) Successful in 15s
CD Pipeline / build-and-deploy (push) Successful in 4m19s
CD Pipeline / post-deploy-checks (push) Successful in 1m54s

This commit is contained in:
Your Name
2026-05-31 14:37:05 +08:00
parent 4744670e4e
commit 8b8773ab7b
9 changed files with 506 additions and 6 deletions

View File

@@ -392,6 +392,7 @@ def validate(root: Path) -> None:
"s2_138_iwooos_product_evidence_wiring_preflight_retry_review_candidate_preflight_outcomes",
"s2_139_iwooos_product_evidence_wiring_preflight_retry_review_candidate_preflight_recovery_ledger",
"s2_140_iwooos_product_evidence_wiring_preflight_retry_review_candidate_preflight_recovery_retry_gates",
"s2_141_iwooos_all_product_coverage_snapshot",
]
assert_equal(
"progress_delta_ledger.delta_ids",
@@ -746,6 +747,11 @@ def validate(root: Path) -> None:
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_three_axis_product_progress",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_all_product_coverage_snapshot",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
@@ -1191,6 +1197,30 @@ def validate(root: Path) -> None:
len(expected_iwooos_source_control_primary_readiness_item_ids),
)
assert_false("iwooos_projection.summary.action_buttons_allowed", iwooos_projection["summary"]["action_buttons_allowed"])
assert_equal(
"iwooos_projection.summary.all_product_coverage_snapshot_scope_count",
iwooos_projection["summary"]["all_product_coverage_snapshot_scope_count"],
6,
)
assert_equal(
"iwooos_projection.summary.all_product_coverage_snapshot_read_only_count",
iwooos_projection["summary"]["all_product_coverage_snapshot_read_only_count"],
6,
)
assert_equal(
"iwooos_projection.summary.all_product_coverage_snapshot_runtime_ready_count",
iwooos_projection["summary"]["all_product_coverage_snapshot_runtime_ready_count"],
0,
)
assert_equal(
"iwooos_projection.summary.all_product_coverage_snapshot_default_summary_mode",
iwooos_projection["summary"]["all_product_coverage_snapshot_default_summary_mode"],
"compact_first",
)
assert_true(
"iwooos_projection.summary.all_product_coverage_snapshot_detail_ledger_collapsed",
iwooos_projection["summary"]["all_product_coverage_snapshot_detail_ledger_collapsed"],
)
expected_iwooos_surface_ids = [
"security_compliance",
"legacy_security",
@@ -9125,6 +9155,120 @@ def validate(root: Path) -> None:
list(web_messages_en["iwooos"]["concreteSecurityBlockerResolution"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.all_product_coverage_snapshot_testid",
iwooos_projection_page,
'data-testid="iwooos-all-product-coverage-snapshot-board"',
)
assert_text_contains(
"iwooos_page.all_product_coverage_snapshot_boundary_testid",
iwooos_projection_page,
'data-testid="iwooos-all-product-coverage-snapshot-boundaries"',
)
assert_text_contains(
"iwooos_page.all_product_coverage_snapshot_component",
iwooos_projection_page,
"IwoooSAllProductCoverageSnapshotBoard",
)
for text in [
"iwooos_all_product_coverage_snapshot_scope_count=6",
"iwooos_all_product_coverage_snapshot_read_only_count=6",
"iwooos_all_product_coverage_snapshot_runtime_ready_count=0",
"iwooos_all_product_coverage_snapshot_default_summary_mode=compact_first",
"iwooos_all_product_coverage_snapshot_detail_ledger_collapsed=true",
"iwooos_all_product_coverage_snapshot_next_gate=s4_9_owner_response_accepted",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.all_product_coverage_snapshot_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.allProductCoverageSnapshot",
list(web_messages_zh["iwooos"].keys()),
"allProductCoverageSnapshot",
)
assert_contains(
"web_messages.en.iwooos.allProductCoverageSnapshot",
list(web_messages_en["iwooos"].keys()),
"allProductCoverageSnapshot",
)
for key in [
"title",
"subtitle",
"summary",
"states",
"items",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.allProductCoverageSnapshot.keys",
list(web_messages_zh["iwooos"]["allProductCoverageSnapshot"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.allProductCoverageSnapshot.keys",
list(web_messages_en["iwooos"]["allProductCoverageSnapshot"].keys()),
key,
)
for key in ["scopeCount", "readOnlyScopes", "runtimeReady", "nextGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.allProductCoverageSnapshot.summary",
list(web_messages_zh["iwooos"]["allProductCoverageSnapshot"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.allProductCoverageSnapshot.summary",
list(web_messages_en["iwooos"]["allProductCoverageSnapshot"]["summary"].keys()),
key,
)
for key in [
"connected",
"visible",
"waitingEvidence",
"approvalRequired",
"readOnlyFirst",
"templateReady",
]:
assert_contains(
"web_messages.zh-TW.iwooos.allProductCoverageSnapshot.states",
list(web_messages_zh["iwooos"]["allProductCoverageSnapshot"]["states"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.allProductCoverageSnapshot.states",
list(web_messages_en["iwooos"]["allProductCoverageSnapshot"]["states"].keys()),
key,
)
for key in [
"awoooiCore",
"websites",
"sourceControl",
"hosts",
"toolsMonitoring",
"futureProducts",
]:
assert_contains(
"web_messages.zh-TW.iwooos.allProductCoverageSnapshot.items",
list(web_messages_zh["iwooos"]["allProductCoverageSnapshot"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.allProductCoverageSnapshot.items",
list(web_messages_en["iwooos"]["allProductCoverageSnapshot"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.three_axis_product_progress_testid",
iwooos_projection_page,