mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-10-24 19:13:29 +00:00
55 lines
4.2 KiB
Markdown
55 lines
4.2 KiB
Markdown
# Test: onboarding and the chat list in the SimpleX Chat Android app
|
||
|
||
You are testing the SimpleX Chat Android app, which runs in an Android emulator on this machine. Drive it only with the `ui` helper, through Bash, one command per call: `ui <command> [args]`. Anything else is refused; don't look for ways around that, and if something blocks the test, report it. The commands are listed at the end.
|
||
|
||
Your working directory is where your output goes. `ui shot <name>` saves `screens/NN-<name>.png` and prints the text on screen, one element per line after its centre `x,y` in screen pixels. Read the PNG to see the screen (1080×2400). The text comes from the app's accessibility tree, so it is spelled exactly, but it can list an element that another screen covers: when the text and the picture disagree, trust the picture. "Above" means a smaller y. `ui tree` also lists text fields and buttons that have no text.
|
||
|
||
## What is set up
|
||
|
||
- The app is already running, on its first screen, with a new, empty database: never run `ui start` or `ui stop`. Begin with `ui shot start` to see it.
|
||
- `ui type` types into the field that has the focus: tap a field before typing into it. `ui key BACK` is Android's back button.
|
||
- Besides the chats, the chat list shows the app's own cards as list items until they are closed: "New 1-time link / Paste link / Scan" (once there is a conversation), "Bottom bar / Top bar", and "Invest in SimpleX Chat!". They are part of the list, not something drawn over it: leave them open.
|
||
|
||
## The test
|
||
|
||
**A. Onboarding.** Each screen waits for the one before it; wait for a text before clicking it.
|
||
|
||
1. The first screen has "Get started": click it.
|
||
2. Click the field "Enter profile name…", type `citester`, and click "Create profile".
|
||
3. On "Your network", click "Continue".
|
||
4. The app explains instant notifications in an alert: click "Allow". Android then asks whether the app may always run in the background: click "Allow" again.
|
||
5. Click "Accept" on the conditions screen.
|
||
6. Wait up to 60 s for the chat list, which shows "Talk to someone" while there are no conversations. Take a shot.
|
||
|
||
**B. A group, and the chat list with the toolbar at the bottom.**
|
||
|
||
1. Click "Start new chat" (the round button in the bottom toolbar), then "Create group". The name field under "Enter group name:" has the focus: type `seeded notes` and click "Create group". Wait for "Invite members", which shows once the group exists.
|
||
2. Run `ui relaunch`: it restarts the app and waits for the chat list. Take a shot.
|
||
3. Check, noting the evidence (screenshot names, positions):
|
||
- "seeded notes" is listed;
|
||
- the search field "Search or paste SimpleX link" is in the bottom half of the screen (y over 1200), and "Add list" is just above it;
|
||
- nothing is cut off, overlapping or garbled.
|
||
|
||
**Between the layouts:** run `ui layout top`: it restarts the app with the toolbar at the top.
|
||
|
||
**C. The chat list, toolbar at the top.** Check, noting the evidence:
|
||
|
||
- "seeded notes" is still listed;
|
||
- the search field is in the top half of the screen (y under 1200), and "Add list" is just below it;
|
||
- nothing is cut off, overlapping or garbled. "Start new chat" is now a floating button at the bottom right, drawn over whatever the list shows there: note what it covers, but that alone is not a failure.
|
||
|
||
You have at most 60 turns, and the whole test fits in about 25 if you chain steps whose outcome you can predict with `ui do` and look at the screen after each chain. For example:
|
||
|
||
- `ui do click-text "Get started" -- click-text "Enter profile name" 30 -- type citester -- shot profile`
|
||
- `ui do click-text "Create profile" -- wait Continue 60 -- shot your-network`
|
||
- `ui do click-text "Start new chat" -- click-text "Create group" 10 -- wait "Enter group name" -- shot new-group`
|
||
- `ui do relaunch -- shot chat-list-bottom`
|
||
|
||
`ui do` stops at the first command that fails, so a failed chain tells you where it stopped.
|
||
|
||
## Report
|
||
|
||
Write `report.md` in your working directory: for each of A, B and C, each check you ran as PASS or FAIL with its evidence, and anything else unexpected. End your final message with one line: `CLAUDE-TEST: PASS` if every check you ran passed, otherwise `CLAUDE-TEST: FAIL` followed by the checks that failed.
|
||
|
||
## The ui helper
|