mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-02 19:17:10 +00:00
* fix(runner): surface focus-tap errors in InputText action A failed Tap/TapSelector before InputText was swallowed, so text typed into the wrong field (or no field) still reported success. Return the error so the step fails explicitly. * feat(sample-app): add username EditText and snapshot Gives the spec a real EditText target (content-desc: username_field) so the InputText action path can be exercised end-to-end. The typed value is mirrored into MainActivity.username and surfaced as the "username" snapshot for spec assertions. * feat(sample-app): exercise InputText action against username field Adds typeUsername action and usernameNeverShrinks property to the sample spec, and extends the integration test to assert the bundled spec emits an InputText(desc:username_field, "alice") action and that the property correctly violates when a snapshot reports a shorter string.
uatu sample app
Tiny Android app wired to the uatu SDK, plus a TypeScript spec that drives it. Use it as a reference for integrating uatu into your own app.
Prerequisites
uatuCLI onPATH(see getting started)- Android SDK installed (uatu auto-discovers
adbandemulatorunder$ANDROID_HOME,~/Library/Android/sdk, or the Homebrew cask; nothing to export if you use a standard install) justtask runner
Install the app
just install
Run a test
just test
If no device is connected, uatu boots the single AVD it finds. With multiple AVDs, pick one:
just AVD=Pixel_7 test
Persistent settings can live in .env alongside the justfile:
AVD=Pixel_7
DURATION=5m
Traces land in ./runs/<timestamp>/.
How the pieces connect
android/build.gradle.ktsdepends onio.github.priyanshujain:sdk-androidfrom Maven Centralandroid/src/main/kotlin/.../SampleApplication.ktcallsUatu.start(this)and registers snapshot extractors (app_state,click_count)spec.tsimports@uatu/spec(seepackage.json), reads those snapshots, asserts properties on them, and weights the actions the fuzzer picks fromjust testinvokesuatu testagainst the installed APK on the named AVD