Scripted app flows: drive the full app on the desktop, like Playwright #17
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
UI changes currently get checked by hand on the phone or by single-page QML tests against fake stores. PR #16 is an example: its review left the wizard screens and the "busy syncing" / delete-failure paths to check by hand. A scripted way to click through whole flows against the real Rust backend would catch more before a device check and give PRs screenshots as proof.
Proposal
cargo make flow-test: QtTest flows that load the realMain.qmlwith the real bridge, in clickable's amd64 image under Xvfb. That's the same setup asqml-test, so there are no new dependencies.origin(file URL, no SSH).mouseClick/keyClickandfindChildbyobjectName, and savegrabImagescreenshots as artifacts.Notes
clickable desktopalready runs the app on the desktop for looking at it by hand; see the comment below for whether it works.objectNames on the buttons and fields they touch. Add them as part of this work.Done when
cargo make flow-testruns the flows above, green, and writes screenshots.qml-test.clickable desktoptrial (2026-10-13, on the #16 branch)It works, with one flag:
clickable desktop --arch amd64builds fine (about 45 s for the Rust release build). The launch then stops with "System requirement not met", because clickable detects the NVIDIA GPU and wantsnvidia-container-toolkit.clickable desktop --arch amd64 --no-nvidialaunches the app. It runs as an XWayland window on the Wayland session, even though clickable warns "xhost not detected". The Lomiri theme renders correctly, and the header (sync, settings, add), the search field and the empty-list text all draw.~/.clickable/home/.local/share/touchpass.aps/on the host, so you can reset it between runs by deleting that folder.keys/<fpr>.ascandstore/.gpg-idand ending on the empty entry list.XDG_RUNTIME_DIR not set, which is harmless.For the flow-test task: use
--no-nvidia(or set it in clickable.yaml / an env var) so a GPU on the host doesn't break the run.