From bb64edf8babe617ca6219e53520ce87a2dd00769 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 6 Sep 2018 00:59:07 +0300 Subject: introduce variable --- crates/libeditor/src/test_utils.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'crates/libeditor/src/test_utils.rs') diff --git a/crates/libeditor/src/test_utils.rs b/crates/libeditor/src/test_utils.rs index 037319cd0..9c1279991 100644 --- a/crates/libeditor/src/test_utils.rs +++ b/crates/libeditor/src/test_utils.rs @@ -1,4 +1,4 @@ -use libsyntax2::{File, TextUnit}; +use libsyntax2::{File, TextUnit, TextRange}; pub use _test_utils::*; use LocalEdit; @@ -18,3 +18,20 @@ pub fn check_action Option> ( let actual = add_cursor(&actual, actual_cursor_pos); assert_eq_text!(after, &actual); } + +pub fn check_action_range Option> ( + before: &str, + after: &str, + f: F, +) { + let (range, before) = extract_range(before); + let file = File::parse(&before); + let result = f(&file, range).expect("code action is not applicable"); + let actual = result.edit.apply(&before); + let actual_cursor_pos = match result.cursor_position { + None => result.edit.apply_to_offset(range.start()).unwrap(), + Some(off) => off, + }; + let actual = add_cursor(&actual, actual_cursor_pos); + assert_eq_text!(after, &actual); +} -- cgit v1.2.3