integration-tests: port helix-term's full test suite
184 tests lifted from helix-term/tests/test/{auto_pairs, command_line,
commands, movement, splits, commands/insert, commands/movement,
commands/write, commands/reverse_selection_contents,
commands/rotate_selection_contents}.rs at the pinned Helix revision.
Adaptations from upstream:
- test((...)).await? → test((...)) (fresnel harness is sync).
- #[tokio::test(flavor = "multi_thread")] → "current_thread".
- The (input, keys, expected, LineFeedHandling::AsIs) 4-tuple maps
to our (input, keys, expected, LineFeeds::AsIs). helpers.rs grew
an IntoTestCase trait so both 3-tuple and 4-tuple forms work
verbatim.
- LINE_END constant matches upstream.
Ignored tests: 91 total, each with a specific reason. Categories: file
I/O commands (:w, :wq, :r) — 35; : command-line prompt — ~20;
tree-sitter grammars — ~15; splits — 5; macros — 1;
AppBuilder::with_config custom keymaps — 4; one known-failing test
(2[<space>u undo edge case) pending investigation. The ignored bucket
is the Phase 1 backlog: cargo test -- --ignored prints it.
Passing: 93 tests including all 44 non-ignored auto_pairs cases,
find_char and find_char_line_ending (which stress on_next_key_callback,
just wired), surround_inside_pair / surround_around_pair /
test_surround_delete / test_surround_replace / mim / mam / mdm, all
non-ignored commands.rs (search, extend, delete, join, paste,
duplication), and both rotate_selection_contents variants.