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)}`, ); }