Overview
Reqbook has two practical end-to-end checks:- Flow canvas browser E2E: launches
rqb serve, opens the real React UI in Playwright, clicks Run flow, and verifies capture/inject behavior against a local fixture API. - Desktop smoke: launches the Tauri desktop binary, verifies the embedded preview server, desktop write-session guard, workspace switching, and flow/index metadata.
Flow canvas browser E2E
Install web dependencies and build the embedded UI:web/:
rqb serve on a random loopback port, opens /flows/flows/e2e-flow.md, clicks Run flow, and verifies:
- the flow canvas renders;
- exactly two flow nodes are present;
- the run summary shows
Passed; - every node status is
ok; - the fixture API received
POST /postsfollowed byGET /users/42, proving capture/inject worked.
target/e2e-artifacts/flow-canvas/:
flow-canvas.pngscreenshot;flow-canvas.htmlrendered DOM;preview.logserver output;fixture-requests.jsoncalls received by the fixture API;error.txtstack trace.
CI gate
.github/workflows/ci.yml runs the flow canvas E2E in a dedicated Web E2E job on Ubuntu:
Desktop smoke
Build the desktop binary:rqb_write_token session guard, opens a temporary workspace, reads /api/index, reads /api/flows, then terminates the app.
What remains for release-grade native E2E
The flow canvas E2E covers the web surface. The desktop smoke covers native launch and embedded server wiring. Before a public desktop release, add native click-level tests using Tauri WebDriver or platform automation:- Launch the packaged desktop artifact.
- Verify the native window is nonblank.
- Open or create a workspace through the native folder picker path.
- Run a flow from the native window and assert the same node/run states as the browser E2E.
- Save a spec/flow and assert writes stay inside
api-docs/.