19 Commits

Author SHA1 Message Date
Michał Pierzchała 613974ab71 Handle iOS system blocker alerts in snapshots (#38) 2026-02-11 19:05:19 +01:00
Michał Pierzchała 6a064f229d fix: update IPHONEOS_DEPLOYMENT_TARGET to 15.6 (#42) 2026-02-11 10:07:58 +01:00
Michał Pierzchała 4aed3fba72 fix: support TouchableOpacity as [other] on iOS when has content (#31)
* fix: support TouchableOpacity as [other] on iOS when has content

* update snapshot ios
2026-02-09 19:07:04 +01:00
Michał Pierzchała 2e8680518d fix: iOS snapshot not showing password fields (#29) 2026-02-09 13:29:05 +01:00
Michał Pierzchała 828284d7e3 fix: set min iOS deployment target to 15.6 (#27)
* fix: set min iOS deployment target to 15.6

* increase timeout for iOS
2026-02-09 12:39:02 +01:00
Michał Pierzchała d2954f6fd3 fix: missing long-press on iOS simulator (#26)
* feat:  for self-healing e2e tests;  assertions

* fix: support long-press on iOS simulators via XCTest runner

The long-press command was failing on iOS simulators because dispatch.ts
called interactor.longPress() which mapped to a stub in ios/index.ts
that always threw UNSUPPORTED_OPERATION. Unlike press, type, fill, etc.,
the long-press case was missing the iOS simulator routing through the
XCTest runner.

Rather than adding yet another platform branch in dispatch.ts, this
refactors the Interactor abstraction to absorb runner routing internally.
getInteractor() now accepts an optional RunnerContext; when the device is
an iOS simulator, it returns an interactor whose tap/longPress/focus/
type/fill/scroll/scrollIntoView methods route through
runIosRunnerCommand. This removes 7 scattered if-ios-simulator branches
from dispatch.ts, making it impossible to forget runner routing for
future commands.

Changes:
- Swift runner: add longPress command type + longPressAt helper using
  XCUICoordinate.press(forDuration:)
- runner-client.ts: add longPress to RunnerCommand type + durationMs field
- interactors.ts: add RunnerContext type, createIosSimulatorInteractor()
  that routes through the XCTest runner, move invertScrollDirection here
- dispatch.ts: pass RunnerContext to getInteractor, remove all iOS sim
  branching for interactor commands (-90 lines)

Co-authored-by: Cursor <cursoragent@cursor.com>

* restore attempts

* refactor: unify iOS interactor, remove dead input stubs

Since runnerContext is always passed and the capability matrix ensures
iOS only runs on simulators in v1, the two iOS interactor code paths
collapse into one: shared methods (open, close, screenshot) plus runner
overrides spread on top. No branch needed.

This deletes 7 dead iOS input stubs from ios/index.ts (pressIos,
longPressIos, focusIos, typeIos, fillIos, scrollIos, scrollIntoViewIos)
that only ever threw UNSUPPORTED_OPERATION errors.

Co-authored-by: Cursor <cursoragent@cursor.com>

* cleanup

* fixup save-script

* update

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 12:06:26 +01:00
Michał Pierzchała d8440a6645 fix: make fill clear input and progressively fill the input (#17)
* fix: make fill clear input and progressively fill the input

* fixup ios

* improve text fill reliability
2026-02-06 12:16:20 +01:00
Jano 992959c23e feat(ios): add pinch gesture for zoom on iOS simulators (#11)
- Add 'pinch' CLI command: pinch <scale> [x y] (scale > 1 zoom in, < 1 zoom out)
- Implement in dispatch, runner-client (RunnerCommand + scale param), Swift runner
- Use double-tap + drag workaround for map zoom (tap center, drag up/down)
  instead of XCUITest pinch(withScale:velocity:) which pans on map views
- Update commands.md and agent-device skill with pinch usage and best practices
- Fix skill reference: recording.md -> video-recording.md

Co-authored-by: Jano Detzel <jano.detzel@ewe-go.de>
2026-02-05 17:51:36 +01:00
Michał Pierzchała d8b1800dc0 fix long-running timeouts for session app 2026-02-05 07:59:31 +01:00
Michał Pierzchała 1d6994440c perf: improve xctest backend speed dramatically and make default 2026-02-04 22:35:18 +01:00
Michał Pierzchała 701a5ea31e refactor ios-runner; add skills 2026-02-02 20:33:01 +01:00
Michał Pierzchała 24926c0351 improve grouping mechnism for tabbar etc 2026-02-02 17:32:16 +01:00
Michał Pierzchała 8845eb2c79 feat: home, app-switcher, wait for 2026-02-02 16:57:50 +01:00
Michał Pierzchała 0f90c61e7c remove rect; adjust error messages 2026-02-02 14:06:11 +01:00
Michał Pierzchała 13dc88eb83 setup base publish 2026-01-31 18:23:16 +01:00
Michał Pierzchała 2221c886d0 make clicking work where it supposed to 2026-01-31 14:21:59 +01:00
Michał Pierzchała fb53d72b63 feat: AX snapshot goes brrrr 2026-01-31 12:52:04 +01:00
Michał Pierzchała f060fc7fca snapshot accessibility tree 2026-01-30 21:05:58 +01:00
Michał Pierzchała 4da4745a6c initial commit 2026-01-30 19:41:00 +01:00