Add an automated smoke E2E test for the app's critical path #32
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?
Every change to the composition root, the engine or the persistence
adapters currently ends with a hand-driven emulator smoke: install,
launch, grant permissions by hand, tap the demo workflow, check the
snackbar, check the Activity tab. It caught nothing this time, but it is
the only thing standing between a green
task ci:qualityand an app thatdoes not start — and it is not repeatable by anyone but the person who
remembers the steps.
Why now
The phase 7 improve pass moved
AutomationGraphto a single instance onMacrosApplicationand routed 13 construction sites through aContextaccessor. Nothing in the JVM gate can see that the app still boots, and
app/src/androidTestcovers capabilities rather than the app's ownstartup path — there is no test that launches
MainActivityat all.Scope
An instrumented test that exercises the path a user takes on a cold
start, asserting on app state rather than pixels:
MainActivityfrom a cold process.codec and the action registry all resolving.
SucceededinSqliteRunJournalvia
history(), not just that a snackbar appeared.recorded — this is the receiver ->
automationGraph->EventGatewaypath that every platform trigger shares.
AutomationGraphwas constructed for the process.Compose UI testing is not set up in this repo; step 2 and 3 may be
cheaper to drive through
MacrosViewModelplus the authoring surfacethan through the UI tree. Decide that when implementing — the value is
in the assertions, not in tapping.
Notes
GrantPermissionRuleor
pm grantin the runner), otherwise it hangs behind a dialog theway the manual smoke does.
connectedDebugAndroidTestuninstalls the app afterwards, so anythingdepending on retained app data has to seed it itself.
task ci:quality(they need an emulator). Worthdeciding separately whether CI should gain an emulator stage, or
whether this runs on a release-tag workflow only.