Test results

Every registered run lands in your repo’s dashboard on sootsim.com, next to the builds and previews it belongs with. A run row carries pass/fail, what ran (the Maestro flow name or Detox spec directory), where it came from (branch, commit, PR, CI or a laptop), how long it took, and where it failed.

The Runs view

sootsim.com/org/<your-org>/<repo>/runs lists every run for the repo. Filters are URL parameters applied server-side, so any filtered view is a shareable link:

/org/acme/mobile-app/runs?status=failed /org/acme/mobile-app/runs?kind=maestro /org/acme/mobile-app/runs?pr=418 /org/acme/mobile-app/runs?branch=main&source=ci

The same filters are one click in the UI (status, kind, source, branch).

Per-step traces

A run row expands in place into its step trace: each step’s verb and target, duration, and the failure error inline on the step that broke. The row’s summary already names the failing step (failed at step 7/9) so triage starts before you expand anything.

Failed runs also carry the debugging you’d otherwise SSH for: the screenshot of the screen at the failing step, shown inline under the trace, and a debug bundle link with the full context the runner captured at the moment of failure — the error and stack, a structured describe of every visible element, the accessibility tree, the node tree, and console errors and warnings. Both upload with the run’s replay, so a red CI run is debuggable entirely from the browser.

The replay

Replay on a run opens the hosted recording at /preview/<id>: the video of the run with a step timeline beside it. Selecting a step scrubs the recording to that moment, and the captured network and console panels filter to the step window. This link is the test report; share it with anyone on your team and they see exactly what the app did.

The pull request

Each PR gets its own page, sootsim.com/org/<org>/<repo>/pr/<number>, collecting the PR’s test runs, recorded previews, and branch builds in one place, with a link back to the PR on GitHub. In the other direction, the PR itself shows a Tests table in the SootSim comment and a Soot Tests check whose pass/fail can gate merges.

Where runs come from

sourceregisters when
CI via the GitHub App workflowalways
sootsim maestro test / sootsim detox locallywhen the run uploads a replay (--preview)
sootsim maestro generate "<goal>"always (the hosted result is the point)

Local iteration without --preview stays local on purpose: your dashboard shows the runs your team should see, and a registration hiccup never flips a passing suite red.

Ready to build?

Run your React Native app in the browser. No simulators, no native toolchain, no waiting.

curl -fsSL https://sootsim.com/install.sh | sh