Skip to content

test: automation-driven GUI test suite#77

Merged
sepehr-safari merged 1 commit into
mainfrom
test/gui-automation-suite
Jul 12, 2026
Merged

test: automation-driven GUI test suite#77
sepehr-safari merged 1 commit into
mainfrom
test/gui-automation-suite

Conversation

@sepehr-safari

Copy link
Copy Markdown
Member

Grows the S0 launch smoke into an automation-driven GUI suite: it clicks real widgets and asserts the semantics tree after each step, not just the initial render.

What it drives

Launched with the sample trace (keeps the CLI load-path assertions), then:

  1. Replay transport — click Next → the detail pane unpacks the first event (Details, evt-0001, Message ID). → screenshot inspector
  2. Filter — click Call → status bar shows of 22 events; click Clear → it's gone again.
  3. Live surface — click the Live tab → the capture control strip renders (Start capture, Ready to capture, Listen). → screenshot live
  4. The whole run asserts no error event=.

Clicks target widgets by accessibility name: a widget_id helper reads the snapshot line (widget @w<win>/<view>#<id> role=… name="<label>") and extracts the id, preferring native automate snapshot and falling back to the dropbox snapshot.txt. Only cleanly-labeled controls (transport/facet/tab buttons) are clicked — no fragile row targeting. No capture is started (that would spawn a real proxy subprocess).

CI

The smoke job drives the GUI under Xvfb; the artifact upload now collects both screenshots (screenshot-*.png).

Verification

bash -n clean; the -Dautomation=true build is clean. The driven flow needs a display, so it's verified by the Xvfb smoke job in CI (the macOS window path is for local dev machines) — not runnable in a headless macOS shell.

Closes #71.

Grow the S0 launch smoke into a suite that DRIVES the headline flows through
the automation protocol and asserts the semantics tree after each step, with
screenshots of two surfaces as artifacts.

- scripts/smoke.sh: after the CLI load-path assertions, click real widgets by
  accessibility name (a widget_id helper extracts the id from the snapshot's
  `@w/<view>#<id>` path, falling back to the dropbox snapshot.txt) and assert
  the result — the replay transport (Next → the detail pane unpacks event
  evt-0001), the filter facet (Call → "of 22 events", Clear restores it), and
  the Live tab (→ the capture control strip renders). Screenshots the
  inspector and live surfaces; the whole run asserts no error events.
- ci.yml: the smoke step drives the GUI; the artifact upload now collects both
  screenshots (screenshot-*.png).

No capture is started in the test (that would spawn a real proxy subprocess).
Verified: bash -n clean, the automation build is clean. The driven flow runs
under Xvfb in CI (it needs a display; the macOS window path is for local dev).

Closes #71.
@sepehr-safari sepehr-safari merged commit d54f8e9 into main Jul 12, 2026
3 checks passed
@sepehr-safari sepehr-safari deleted the test/gui-automation-suite branch July 12, 2026 18:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: automation-driven GUI test suite

1 participant