Skip to content

fix(schema): Preserve video fps constraints

8206d7b
Select commit
Loading
Failed to load commit list.
Merged

feat(ui-automation): Add rs/1 runtime automation parity #416

fix(schema): Preserve video fps constraints
8206d7b
Select commit
Loading
Failed to load commit list.
@sentry/warden / warden: xcodebuildmcp-test-boundary-review completed May 18, 2026 in 32m 28s

4 issues

xcodebuildmcp-test-boundary-review: Found 4 issues (2 high, 2 low)

High

Test's `toEqual` expectation contradicts `normalizeTestCases` filter logic - `src/snapshot-tests/__tests__/json-normalize.test.ts:26-36`

The test expects all three test cases (failed + two passed) to be returned, but normalizeTestCases in json-normalize.ts returns failed only when failed.length > 0 — so the actual output would be a single-item array containing only the failed case, causing the test to fail.

SDKROOT expected value bypasses normalization — test will fail - `src/snapshot-tests/__tests__/json-normalize.test.ts:156`

The expected output at line 156 uses the raw value 'iphoneos', but normalizeBuildSettingsEntryValue in json-normalize.ts unconditionally returns '<SDK_PATH>' for any SDKROOT key, so normalizeStructuredEnvelope will produce '<SDK_PATH>' and this assertion will fail. Either update the expected value back to '<SDK_PATH>', or update the normalizer to only replace full SDK paths.

Low

Inline mock executor duplicates existing `createCommandMatchingMockExecutor` helper - `src/mcp/tools/ui-automation/__tests__/screenshot.test.ts:36-57`

Replace createBootedScreenshotMockExecutor with the existing createCommandMatchingMockExecutor from test-utils/mock-executors.ts, which is purpose-built for routing multiple commands to different mock responses.

Also found at:

  • src/mcp/tools/ui-automation/__tests__/ui-action-test-helpers.ts:52-54
swipe success snapshot coverage replaced with error case without explicit acknowledgement - `src/snapshot-tests/suites/ui-automation-suite.ts:124-136`

The swipe describe block in the snapshot suite no longer exercises the success path: the previous it('success', ...) test was replaced with it('error - target not actionable', ...), flipping expect(isError).toBe(false) to toBe(true) and switching the fixture key from swipe--success to swipe--error-not-actionable. Per the skill, snapshot updates are contract changes requiring review, and silently removing the only swipe success snapshot assertion (while leaving an orphan cli/json/ui-automation/swipe--success.json fixture in the tree) loses regression coverage for the swipe happy path. This may be intentional given the rs/1 post-action snapshot changes that affect what counts as 'actionable', but the loss of success-path snapshot coverage should be called out and either restored with a now-actionable element ref or explicitly justified.


⏱ 30m 50s · 4.2M in / 200.8k out · $7.92

Annotations

Check failure on line 36 in src/snapshot-tests/__tests__/json-normalize.test.ts

See this annotation in the file changed.

@sentry-warden sentry-warden / warden: xcodebuildmcp-test-boundary-review

Test's `toEqual` expectation contradicts `normalizeTestCases` filter logic

The test expects all three test cases (failed + two passed) to be returned, but `normalizeTestCases` in `json-normalize.ts` returns `failed` only when `failed.length > 0` — so the actual output would be a single-item array containing only the failed case, causing the test to fail.

Check failure on line 156 in src/snapshot-tests/__tests__/json-normalize.test.ts

See this annotation in the file changed.

@sentry-warden sentry-warden / warden: xcodebuildmcp-test-boundary-review

SDKROOT expected value bypasses normalization — test will fail

The expected output at line 156 uses the raw value `'iphoneos'`, but `normalizeBuildSettingsEntryValue` in `json-normalize.ts` unconditionally returns `'<SDK_PATH>'` for any `SDKROOT` key, so `normalizeStructuredEnvelope` will produce `'<SDK_PATH>'` and this assertion will fail. Either update the expected value back to `'<SDK_PATH>'`, or update the normalizer to only replace full SDK paths.