mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-02 19:17:10 +00:00
* docs: README covers iOS + web, surface both example apps * docs(cli): document --ios-device and per-platform doctor * docs: tighten README, fold examples into Docs list * docs(runs): correct --clear-data lifecycle wording Default behavior no longer wipes app data between runs; --clear-data is now opt-in. * docs(getting-started): add iOS path, separate folio and folio-web Document just test-ios under examples/folio, and distinguish the KMP sample from the React + Vite folio-web sample. * docs(inspect): document the eight panels Lists Screenshot, ActionList, Timeline, ViolationsPanel, HierarchyPanel, SnapshotTable, MetricsChart, ExceptionsPanel. Cross-links HierarchyPanel to the spec language reference. * docs(writing-specs): document setup export, flag noLogcatErrors as android-only Mirrors pkg/spec/README.md so the manual covers the runner's setup-first fall-through. Marks noLogcatErrors as Android-only so iOS/web spec authors know it silently no-ops. * docs(folio): document web target and iOS sanderling test recipe After the KMP refactor folio also runs on wasmJs and the justfile exposes just web, just web-build, and just test-ios. Surface all three. * docs(folio-web): add README Covers prerequisites, demo credentials, just test recipe, and how the React + Vite host exposes state to the sanderling spec via stable ids and data-* attributes. * docs: scrub driver-implementation name from user docs Drop the implementation tool name from README, cli.md doctor table, and spec-language.md. These docs should describe behaviour, not the specific underlying tool the native sidecar wraps. * docs(development): scrub driver-implementation name from dev docs architecture, design-principles, decisions now describe the native sidecar by role (gRPC surface over OS UI-test pipeline) rather than by the specific tool it wraps.
67 lines
2.7 KiB
Markdown
67 lines
2.7 KiB
Markdown
---
|
|
title: CLI reference
|
|
---
|
|
|
|
# CLI reference
|
|
|
|
```
|
|
sanderling <command> [flags]
|
|
```
|
|
|
|
## `sanderling test`
|
|
|
|
Run a spec against an app for a fixed duration.
|
|
|
|
| Flag | Default | Description |
|
|
|---|---|---|
|
|
| `--spec` | required | Path to the TypeScript spec. |
|
|
| `--bundle-id` | required | Target app bundle ID (Android: applicationId). |
|
|
| `--launcher-activity` | resolved | Optional `<pkg>/<activity>` to launch. Overrides default resolution. |
|
|
| `--platform` | `android` | Target platform: `android`, `ios`, or `web`. |
|
|
| `--avd` | optional (android) | Android AVD name to boot if no device is connected. Required only when no device is connected and multiple AVDs exist. |
|
|
| `--ios-device` | optional (ios) | iOS simulator name or UDID to boot if none is running. |
|
|
| `--duration` | `5m` | Total test duration (`30s`, `5m`, `2h`, `1d`). |
|
|
| `--seed` | `0` | PRNG seed. `0` uses a random seed and records it in `meta.json`. |
|
|
| `--output` | `./runs` | Output directory for traces. |
|
|
| `--clear-data` | `false` | Clear app data before launching so the run starts from a fresh install. |
|
|
|
|
## `sanderling inspect [run-or-runs-dir]`
|
|
|
|
Serve a local web UI for browsing traces. The positional argument is optional and may point at either a runs directory (the parent of many runs) or a single run directory (auto-detected by the presence of `meta.json`). Defaults to `./runs`.
|
|
|
|
| Flag | Default | Description |
|
|
|---|---|---|
|
|
| `--port` | `0` (ephemeral) | TCP port to listen on. |
|
|
| `--no-open` | `false` | Skip opening the default browser on startup. |
|
|
| `--dev` | `false` | Reverse-proxy non-API requests to the Vite dev server on `127.0.0.1:5173`. |
|
|
|
|
See [the inspect UI page](./inspect/) for the panel reference and keyboard shortcuts.
|
|
|
|
## `sanderling doctor`
|
|
|
|
Check the host environment for a working sanderling setup.
|
|
|
|
```
|
|
sanderling doctor [--platform web|android|ios|all]
|
|
```
|
|
|
|
`--platform` defaults to `all`, which runs every platform's checks (deduped). Pass a specific platform to scope the output.
|
|
|
|
| Platform | Checks |
|
|
|---|---|
|
|
| `web` | headless Chromium can launch (the bundled CDP surface boots a real browser). |
|
|
| `android` | `adb` on PATH; `emulator` on PATH or under `ANDROID_HOME`; Java 17+; embedded native sidecar JAR is real. |
|
|
| `ios` | `xcrun` on PATH; `simctl` on PATH; Java 17+; embedded native sidecar JAR is real. |
|
|
|
|
## `sanderling version`
|
|
|
|
Print the CLI version.
|
|
|
|
## Flags coming in v0.1.0
|
|
|
|
- `--permissions` to pre-set OS-level permissions (for example `--permissions location=allow,notifications=deny`).
|
|
- `--max-steps` hard cap on step count.
|
|
- `--exit-on-violation` stop the run on the first property violation.
|
|
|
|
Tracked in [issue #4](https://github.com/priyanshujain/sanderling/issues/4).
|