diff options
author | Skyler Hawthorne | 2022-04-18 01:04:59 +0000 |
---|---|---|
committer | Skyler Hawthorne | 2022-06-19 03:54:03 +0000 |
commit | 36e5809f638028644d8a51e1ed2467ea402de170 (patch) | |
tree | f142ae9aea7efd94e9e3f62edb9f7aca27478e0a /helix-term/tests/integration/movement.rs | |
parent | 267605d147587e120d765fa62333dd986a3cb5e6 (diff) |
add test for ensuring the initial cursor on a newly opened file
Diffstat (limited to 'helix-term/tests/integration/movement.rs')
-rw-r--r-- | helix-term/tests/integration/movement.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/helix-term/tests/integration/movement.rs b/helix-term/tests/integration/movement.rs index d2e01e71..fc2583c1 100644 --- a/helix-term/tests/integration/movement.rs +++ b/helix-term/tests/integration/movement.rs @@ -1,3 +1,5 @@ +use helix_term::application::Application; + use super::*; #[tokio::test] @@ -94,3 +96,31 @@ async fn insert_to_normal_mode_cursor_position() -> anyhow::Result<()> { Ok(()) } + +/// Ensure the very initial cursor in an opened file is the width of +/// the first grapheme +#[tokio::test] +async fn cursor_position_newly_opened_file() -> anyhow::Result<()> { + let test = |content: &str, expected_sel: Selection| { + let file = helpers::temp_file_with_contents(content); + + let mut app = Application::new( + Args { + files: vec![(file.path().to_path_buf(), Position::default())], + ..Default::default() + }, + Config::default(), + ) + .unwrap(); + + let (view, doc) = helix_view::current!(app.editor); + let sel = doc.selection(view.id).clone(); + assert_eq!(expected_sel, sel); + }; + + test("foo", Selection::single(0, 1)); + test("๐จโ๐ฉโ๐งโ๐ฆ foo", Selection::single(0, 7)); + test("", Selection::single(0, 0)); + + Ok(()) +} |