As we currently don't have automated tests for the user facing terminal logic, we still have to check a few things manually. This list does not try to cover every case but tries to catch the most likely breaking points or previous gotchas. Exhaustiveness should be achieved by covering the components with appropriate unit tests.
Ideally we would validate the user experience for every PR but there are probably some good heuristics for when it is a really good idea to run through the manual checklist.
- Your PR changed the repaint logic.
- You changed how key presses are dispatched.
- You added a completely new component.
- The component you changed is not covered by tests, that uphold a contract for the I/O facing engine.
- You did a large refactoring touching several components at once.
To catch potential index overflows etc. running the example binary in debug mode via cargo run
can be helpful. Yet in some cases the experience might be better/smoother when running the actual release build via cargo run --release
. This is especially true for resizing. If the slower execution in debug mode causes noticeable issues report them with the checklist.
Copy the checklist below, as part of your PR finalization
Relevant features tested (leave open if you did not consider those areas touched by your PR):
- core editing and default Emacs keybindings
- history
- syntax highlighting
- completion/hinting
- vi mode
Build: [ ] debug / [ ] release
Platform:
Terminal emulator:
Inside a [ ] ssh,[ ] tmux or [ ] screen session?
- Typing of a short line containing both upper- and lowercase characters.
- Movement left/right using the arrow keys
- Word to the left with
Ctrl-b
orCtrl-Left
, Word to the right withCtrl-f
-
Enter
to complete entry
- Type something and abort the entry with
Ctrl-c
, you should end up on an empty prompt below. - Type something and press
Ctrl-l
to clear the screen. Your current entry should still be there and passed through when pressingEnter
- Paste the line
Emoji test 😊 checks 🤦🏼♂️ unicode
and move the cursor over the emojis. - Are you able to delete the smiley?
-
Home
/End
at accurate positions - Check that the emoji containing line can be entered
- On the empty line press the
up-arrow
key to see if you can recall the previous entry - Press
Enter
to execute this line (it should not be duplicated in the history, after checking leave history recall bydown-arrow
) - On an empty line start typing the beginning of a line in the history. Hit the
up-arrow
to find the matching entry. - After that run
Ctrl-r
to start traditional reverse search. Type your initial search. Can you find more hits by pressingCtrl-r
orup-arrow
? - Abort this search by pressing
Ctrl-c
- Upon entering
test
, this word is highlighted differently.
TODO: define desired behavior
TODO: define basic set to test