Launch the simulator and install my app.
Running commands
start_simulator { id: "qa1", device_type: "iPhone 16 Pro" }
install_app { id: "qa1", path: "./build/MyApp.app" }
launch_app { id: "qa1", bundle_id: "com.example.myapp" }
Enter a fake username and password, then tap login.
Running commands
ui_describe_all { id: "qa1" } // what are the fields called?
ui_tap { id: "qa1", label: "Email" }
ui_type { id: "qa1", text: "test@example.com" }
ui_tap { id: "qa1", label: "Password" }
ui_type { id: "qa1", text: "hunter2" }
ui_tap { id: "qa1", label: "Log In" }
Turn Sound on in settings — and make sure it actually took.
Running commands
ui_tap { id: "qa1", label: "Sound" }
‹ Toggled Sound off -> on. // read back, not assumed
Now try the stepper at the bottom of the list.
Running commands
ui_tap { id: "qa1", label: "Stepper" }
‹ Refused: "Stepper" resolved at (188, 604) but the touch
would land on "Search" (SearchField). It is covered, off
screen, or scrolled out of view.
ui_swipe { id: "qa1", from: { x: 200, y: 600 }, to: { x: 200, y: 300 } }
ui_tap { id: "qa1", label: "Stepper" }
‹ Tapped "Stepper" (Stepper) at (188, 304).
Does the settings screen look right in landscape?
Running commands
rotate { id: "qa1", orientation: "landscape_left" }
‹ Rotated to landscape_left; the interface adopted landscape_left.
ui_view { id: "qa1" } // screenshot back to the model, right way up
Record a clip of the whole signup flow.
Running commands
record_video { id: "qa1", path: "./signup.mov" }
// …drives the flow…
stop_recording { id: "qa1" }
‹ Saved ./signup.mov