diff options
author | Skyler Hawthorne | 2022-04-17 04:19:22 +0000 |
---|---|---|
committer | Skyler Hawthorne | 2022-06-19 03:54:03 +0000 |
commit | 267605d147587e120d765fa62333dd986a3cb5e6 (patch) | |
tree | babb91a4d4911ec9d4ea5f9707686d7036b5ee28 /helix-term/tests/integration/movement.rs | |
parent | 84bbe6b8f3aa23f3f9f1d8b38844efba6af17b41 (diff) |
reorganize tests into groups
Diffstat (limited to 'helix-term/tests/integration/movement.rs')
-rw-r--r-- | helix-term/tests/integration/movement.rs | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/helix-term/tests/integration/movement.rs b/helix-term/tests/integration/movement.rs new file mode 100644 index 00000000..d2e01e71 --- /dev/null +++ b/helix-term/tests/integration/movement.rs @@ -0,0 +1,96 @@ +use super::*; + +#[tokio::test] +async fn insert_mode_cursor_position() -> anyhow::Result<()> { + test_key_sequence_text_result( + Args::default(), + Config::default(), + TestCase { + in_text: String::new(), + in_selection: Selection::single(0, 0), + in_keys: "i".into(), + out_text: String::new(), + out_selection: Selection::single(0, 0), + }, + )?; + + test_key_sequence_text_result( + Args::default(), + Config::default(), + ("#[\n|]#", "i", "#[|\n]#"), + )?; + + test_key_sequence_text_result( + Args::default(), + Config::default(), + ("#[\n|]#", "i<esc>", "#[|\n]#"), + )?; + + test_key_sequence_text_result( + Args::default(), + Config::default(), + ("#[\n|]#", "i<esc>i", "#[|\n]#"), + )?; + + Ok(()) +} + +/// Range direction is preserved when escaping insert mode to normal +#[tokio::test] +async fn insert_to_normal_mode_cursor_position() -> anyhow::Result<()> { + test_key_sequence_text_result( + Args::default(), + Config::default(), + ("#[f|]#oo\n", "vll<A-;><esc>", "#[|foo]#\n"), + )?; + + test_key_sequence_text_result( + Args::default(), + Config::default(), + ( + indoc! {"\ + #[f|]#oo + #(b|)#ar" + }, + "vll<A-;><esc>", + indoc! {"\ + #[|foo]# + #(|bar)#" + }, + ), + )?; + + test_key_sequence_text_result( + Args::default(), + Config::default(), + ( + indoc! {"\ + #[f|]#oo + #(b|)#ar" + }, + "a", + indoc! {"\ + #[fo|]#o + #(ba|)#r" + }, + ), + )?; + + test_key_sequence_text_result( + Args::default(), + Config::default(), + ( + indoc! {"\ + #[f|]#oo + #(b|)#ar" + }, + "a<esc>", + indoc! {"\ + #[f|]#oo + #(b|)#ar" + }, + ), + )?; + + Ok(()) +} |