feat(ui-automation): Add rs/1 runtime automation parity - #416
4 issues
xcodebuildmcp-test-boundary-review: Found 4 issues (1 medium, 3 low)
Medium
`type-text--success` snapshot contract removed without replacement - `src/snapshot-tests/suites/ui-automation-suite.ts:304-319`
The type-text success snapshot test was deleted and replaced with an error case only, leaving the success-path contract entirely unvalidated; no type-text--success fixture exists anywhere in the repo.
Low
Command Generation tests duplicate inline executor instead of using imported createTrackingExecutor helper - `src/mcp/tools/ui-automation/__tests__/gesture.test.ts:176-184`
In gesture.test.ts, the Command Generation tests define inline trackingExecutor closures with a command[1] !== 'describe-ui' guard rather than using the createTrackingExecutor helper that is already imported from ui-action-test-helpers.ts. The shared helper centralizes the describe-ui JSON shape ({ elements: [createNode()] }) and call-capture format, so the inline copies drift from the canonical mock and have to re-implement the post-action describe-ui carve-out by hand. Tests still pass because captureRuntimeSnapshotAfterActionSafely swallows JSON parse errors in a try/catch, but this violates the skill's "Use existing mock executor helpers" guardrail and risks future divergence as the snapshot contract evolves.
Also found at:
src/mcp/tools/ui-automation/__tests__/gesture.test.ts:233-241
Inline `createBootedScreenshotMockExecutor` duplicates existing `createCommandMatchingMockExecutor` helper - `src/mcp/tools/ui-automation/__tests__/screenshot.test.ts:35-52`
Replace the inline createBootedScreenshotMockExecutor factory with the existing createCommandMatchingMockExecutor helper from mock-executors.ts, which already handles multi-command dispatch by pattern match.
createFailingExecutor duplicates createMockExecutor from canonical test-utils - `src/mcp/tools/ui-automation/__tests__/ui-action-test-helpers.ts:55-57`
Replace createFailingExecutor(error) with createMockExecutor({ success: false, error }) from src/test-utils/mock-executors.ts to follow the existing mock executor helpers guardrail.
⏱ 40m 12s · 7.1M in / 300.5k out · $12.21
Annotations
Check warning on line 319 in src/snapshot-tests/suites/ui-automation-suite.ts
sentry-warden / warden: xcodebuildmcp-test-boundary-review
`type-text--success` snapshot contract removed without replacement
The `type-text` success snapshot test was deleted and replaced with an error case only, leaving the success-path contract entirely unvalidated; no `type-text--success` fixture exists anywhere in the repo.