From fe2cbb8fd27c178352a0520ec6837787ffe41806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pierzcha=C5=82a?= Date: Wed, 23 Sep 2026 17:52:16 +0200 Subject: [PATCH] test(ios): expect the AX bridge to derive hittability in the depth-frontier E2E #2775 made the Simulator AX bridge stamp geometric hittable and disclose the hittability gap only when no viewport is reported. The live depth-frontier scenario still required the old gap warning on every bridge capture, so every iOS Smoke run on main and on rebased PRs failed after #2775 merged. Assert the new contract instead: a bridge capture with a viewport carries no hittability-gap warning, and the on-screen projected child is hittable. --- .../integration/ios-simulator-e2e/live-assertions.ts | 1 + .../live-snapshot-depth-frontier.ts | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/test/integration/ios-simulator-e2e/live-assertions.ts b/test/integration/ios-simulator-e2e/live-assertions.ts index ba26e47bd0..f01d909243 100644 --- a/test/integration/ios-simulator-e2e/live-assertions.ts +++ b/test/integration/ios-simulator-e2e/live-assertions.ts @@ -23,6 +23,7 @@ export const { assertElementText, assertWaitSelector, assertWaitText, capturePng export type LiveSnapshotNode = { depth?: unknown; + hittable?: unknown; identifier?: unknown; index?: unknown; label?: unknown; diff --git a/test/integration/ios-simulator-e2e/live-snapshot-depth-frontier.ts b/test/integration/ios-simulator-e2e/live-snapshot-depth-frontier.ts index fcee786b44..84997a70d9 100644 --- a/test/integration/ios-simulator-e2e/live-snapshot-depth-frontier.ts +++ b/test/integration/ios-simulator-e2e/live-snapshot-depth-frontier.ts @@ -45,6 +45,11 @@ export async function assertRegularVisibleDepthFrontier(context: LiveContext): P regularRoot.index, `projected child should be reparented to the presented root: ${JSON.stringify(regular)}`, ); + assert.equal( + projectedChild.hittable, + true, + `on-screen projected child should carry geometric hittability: ${JSON.stringify(regular)}`, + ); assert.ok( regularNodes.every((node) => numericDepth(node) <= 1), `regular --depth 1 exceeded the presented frontier: ${JSON.stringify(regular)}`, @@ -123,8 +128,9 @@ function assertSimulatorBridgeSnapshot(result: { json?: any }, description: stri undefined, `${description} must not carry XCTest tree quality metadata: ${JSON.stringify(result)}`, ); - assert.ok( - result.json?.data?.warnings?.includes(MISSING_HITTABILITY_WARNING), - `${description} must disclose the Simulator AX bridge evidence gap: ${JSON.stringify(result)}`, + assert.equal( + result.json?.data?.warnings?.includes(MISSING_HITTABILITY_WARNING) ?? false, + false, + `${description} reported a viewport, so the AX bridge must derive hittability instead of disclosing it as missing: ${JSON.stringify(result)}`, ); }