fix(web): add IwoooS S4.9 draft detail layer
Some checks failed
CD Pipeline / tests (push) Successful in 1m28s
Code Review / ai-code-review (push) Successful in 14s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled

This commit is contained in:
Your Name
2026-06-01 20:48:12 +08:00
parent b387598d7a
commit f0daaccbba
8 changed files with 670 additions and 0 deletions

View File

@@ -750,6 +750,7 @@ def validate(root: Path) -> None:
"s2_158_iwooos_evidence_unlock_queue",
"s2_159_iwooos_s49_request_draft_package",
"s2_160_iwooos_s49_request_draft_frontstage_radar",
"s2_161_iwooos_s49_request_draft_detail_layer",
]
assert_equal(
"progress_delta_ledger.delta_ids",
@@ -1764,6 +1765,36 @@ def validate(root: Path) -> None:
iwooos_projection["summary"][count_key],
0,
)
assert_true(
"iwooos_projection.summary.s4_9_request_draft_detail_first_layer",
iwooos_projection["summary"]["s4_9_request_draft_detail_first_layer"],
)
assert_equal(
"iwooos_projection.summary.s4_9_request_draft_detail_row_count",
iwooos_projection["summary"]["s4_9_request_draft_detail_row_count"],
5,
)
assert_equal(
"iwooos_projection.summary.s4_9_request_draft_detail_required_field_total",
iwooos_projection["summary"]["s4_9_request_draft_detail_required_field_total"],
30,
)
assert_equal(
"iwooos_projection.summary.s4_9_request_draft_detail_forbidden_action_count",
iwooos_projection["summary"]["s4_9_request_draft_detail_forbidden_action_count"],
10,
)
for count_key in [
"s4_9_request_draft_detail_request_sent_count",
"s4_9_request_draft_detail_owner_response_received_count",
"s4_9_request_draft_detail_owner_response_accepted_count",
"s4_9_request_draft_detail_runtime_gate_count",
]:
assert_equal(
f"iwooos_projection.summary.{count_key}",
iwooos_projection["summary"][count_key],
0,
)
assert_equal(
"iwooos_projection.summary.all_product_coverage_snapshot_default_summary_mode",
iwooos_projection["summary"]["all_product_coverage_snapshot_default_summary_mode"],
@@ -3344,6 +3375,25 @@ def validate(root: Path) -> None:
s49_request_draft["summary"]["frontstage_card_count"],
len(expected_s4_9_owner_response_request_template_ids),
)
assert_true(
"s49_request_draft.summary.frontstage_detail_visible",
s49_request_draft["summary"]["frontstage_detail_visible"],
)
assert_equal(
"s49_request_draft.summary.frontstage_detail_row_count",
s49_request_draft["summary"]["frontstage_detail_row_count"],
len(expected_s4_9_owner_response_request_template_ids),
)
assert_equal(
"s49_request_draft.summary.frontstage_required_field_total",
s49_request_draft["summary"]["frontstage_required_field_total"],
30,
)
assert_equal(
"s49_request_draft.summary.frontstage_forbidden_action_count",
s49_request_draft["summary"]["frontstage_forbidden_action_count"],
10,
)
assert_false("s49_request_draft.summary.request_sent", s49_request_draft["summary"]["request_sent"])
assert_equal("s49_request_draft.summary.request_sent_count", s49_request_draft["summary"]["request_sent_count"], 0)
assert_equal(
@@ -12895,6 +12945,79 @@ def validate(root: Path) -> None:
f"iwooos_projection.s4_9_request_draft_package_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
s4_9_request_draft_detail_rows = iwooos_projection["s4_9_request_draft_detail_rows"]
assert_equal(
"iwooos_projection.s4_9_request_draft_detail_rows.ids",
[item["row_id"] for item in s4_9_request_draft_detail_rows],
expected_s4_9_request_draft_package_item_ids,
)
assert_equal(
"iwooos_projection.s4_9_request_draft_detail_rows.display_order",
[item["display_order"] for item in s4_9_request_draft_detail_rows],
list(range(1, len(expected_s4_9_request_draft_package_item_ids) + 1)),
)
assert_equal(
"iwooos_projection.s4_9_request_draft_detail_rows.source_template_ids",
[item["source_template_id"] for item in s4_9_request_draft_detail_rows],
expected_s4_9_owner_response_request_template_ids,
)
assert_equal(
"iwooos_projection.s4_9_request_draft_detail_rows.template_labels",
[item["template_label"] for item in s4_9_request_draft_detail_rows],
["D1", "D2", "D3", "D4", "D5"],
)
for item in s4_9_request_draft_detail_rows:
assert_equal(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.display_mode",
item["display_mode"],
"first_screen_s4_9_request_draft_detail",
)
assert_equal(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.draft_status",
item["draft_status"],
"ready_not_sent",
)
assert_equal(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.required_field_count",
item["required_field_count"],
6,
)
assert_equal(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.forbidden_action_count",
item["forbidden_action_count"],
10,
)
assert_true(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.redacted_evidence_refs_only",
item["redacted_evidence_refs_only"],
)
assert_false(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.secret_plaintext_collection_allowed",
item["secret_plaintext_collection_allowed"],
)
for count_key in [
"request_sent_count",
"owner_response_received_count",
"owner_response_accepted_count",
"runtime_gate_count",
]:
assert_equal(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.{count_key}",
item[count_key],
0,
)
assert_false(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.not_authorization",
item["not_authorization"],
)
for text in [
'data-testid="iwooos-first-screen-depth-map-board"',
'data-testid="iwooos-first-screen-depth-map-layers"',
@@ -13073,6 +13196,68 @@ def validate(root: Path) -> None:
iwooos_projection_page,
text,
)
for text in [
'data-testid="iwooos-s49-request-draft-detail-board"',
'data-testid="iwooos-s49-request-draft-detail-items"',
'data-testid="iwooos-s49-request-draft-detail-boundaries"',
"IwoooSS49RequestDraftDetailBoard",
"s49RequestDraftDetailItems",
"s49RequestDraftDetailBoundaries",
"s49RequestDraftDetail",
"requiredCount",
"forbiddenCount",
"redactedRefs",
"secret_plaintext_collection_allowed=false",
]:
assert_text_contains(
"iwooos_page.s49_request_draft_detail",
iwooos_projection_page,
text,
)
for text in [
"publicGap",
"namespaceIdentity",
"adjacentScope",
"canonicalOwner",
"legacyDisposition",
]:
assert_text_contains(
"iwooos_page.s49_request_draft_detail_items",
iwooos_projection_page,
text,
)
assert_text_before(
"iwooos_page.s49_request_draft_package_before_detail",
iwooos_projection_page,
"<IwoooSS49RequestDraftPackageBoard />",
"<IwoooSS49RequestDraftDetailBoard />",
)
assert_text_before(
"iwooos_page.s49_request_draft_detail_before_immediate_visual_mesh",
iwooos_projection_page,
"<IwoooSS49RequestDraftDetailBoard />",
"<IwoooSImmediateVisualMeshBoard />",
)
for text in [
"s4_9_owner_attestation_request_draft_detail_frontstage_row_count=5",
"s4_9_owner_attestation_request_draft_detail_required_field_total=30",
"s4_9_owner_attestation_request_draft_detail_forbidden_action_count=10",
"s4_9_owner_attestation_request_sent=false",
"s4_9_owner_attestation_owner_response_received_count=0",
"s4_9_owner_attestation_owner_response_accepted_count=0",
"s4_9_owner_attestation_runtime_gate_opened=false",
"redacted_evidence_refs_only=true",
"secret_plaintext_collection_allowed=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.s49_request_draft_detail_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.focus_deck_testid",
iwooos_projection_page,