aboutsummaryrefslogtreecommitdiff
path: root/crates/ide_assists/src/tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ide_assists/src/tests.rs')
-rw-r--r--crates/ide_assists/src/tests.rs35
1 files changed, 19 insertions, 16 deletions
diff --git a/crates/ide_assists/src/tests.rs b/crates/ide_assists/src/tests.rs
index bdf9cb71c..841537c77 100644
--- a/crates/ide_assists/src/tests.rs
+++ b/crates/ide_assists/src/tests.rs
@@ -16,8 +16,8 @@ use syntax::TextRange;
16use test_utils::{assert_eq_text, extract_offset}; 16use test_utils::{assert_eq_text, extract_offset};
17 17
18use crate::{ 18use crate::{
19 handlers::Handler, Assist, AssistConfig, AssistContext, AssistKind, AssistResolveStrategy, 19 assists, handlers::Handler, Assist, AssistConfig, AssistContext, AssistKind,
20 Assists, SingleResolve, 20 AssistResolveStrategy, Assists, SingleResolve,
21}; 21};
22 22
23pub(crate) const TEST_CONFIG: AssistConfig = AssistConfig { 23pub(crate) const TEST_CONFIG: AssistConfig = AssistConfig {
@@ -28,6 +28,7 @@ pub(crate) const TEST_CONFIG: AssistConfig = AssistConfig {
28 prefix_kind: hir::PrefixKind::Plain, 28 prefix_kind: hir::PrefixKind::Plain,
29 enforce_granularity: true, 29 enforce_granularity: true,
30 group: true, 30 group: true,
31 skip_glob_imports: true,
31 }, 32 },
32}; 33};
33 34
@@ -35,6 +36,7 @@ pub(crate) fn with_single_file(text: &str) -> (RootDatabase, FileId) {
35 RootDatabase::with_single_file(text) 36 RootDatabase::with_single_file(text)
36} 37}
37 38
39#[track_caller]
38pub(crate) fn check_assist(assist: Handler, ra_fixture_before: &str, ra_fixture_after: &str) { 40pub(crate) fn check_assist(assist: Handler, ra_fixture_before: &str, ra_fixture_after: &str) {
39 let ra_fixture_after = trim_indent(ra_fixture_after); 41 let ra_fixture_after = trim_indent(ra_fixture_after);
40 check(assist, ra_fixture_before, ExpectedResult::After(&ra_fixture_after), None); 42 check(assist, ra_fixture_before, ExpectedResult::After(&ra_fixture_after), None);
@@ -78,14 +80,14 @@ fn check_doc_test(assist_id: &str, before: &str, after: &str) {
78 let before = db.file_text(file_id).to_string(); 80 let before = db.file_text(file_id).to_string();
79 let frange = FileRange { file_id, range: selection.into() }; 81 let frange = FileRange { file_id, range: selection.into() };
80 82
81 let assist = Assist::get(&db, &TEST_CONFIG, AssistResolveStrategy::All, frange) 83 let assist = assists(&db, &TEST_CONFIG, AssistResolveStrategy::All, frange)
82 .into_iter() 84 .into_iter()
83 .find(|assist| assist.id.0 == assist_id) 85 .find(|assist| assist.id.0 == assist_id)
84 .unwrap_or_else(|| { 86 .unwrap_or_else(|| {
85 panic!( 87 panic!(
86 "\n\nAssist is not applicable: {}\nAvailable assists: {}", 88 "\n\nAssist is not applicable: {}\nAvailable assists: {}",
87 assist_id, 89 assist_id,
88 Assist::get(&db, &TEST_CONFIG, AssistResolveStrategy::None, frange) 90 assists(&db, &TEST_CONFIG, AssistResolveStrategy::None, frange)
89 .into_iter() 91 .into_iter()
90 .map(|assist| assist.id.0) 92 .map(|assist| assist.id.0)
91 .collect::<Vec<_>>() 93 .collect::<Vec<_>>()
@@ -179,9 +181,10 @@ fn check(handler: Handler, before: &str, expected: ExpectedResult, assist_label:
179 "unresolved assist should not contain source changes" 181 "unresolved assist should not contain source changes"
180 ), 182 ),
181 (Some(_), ExpectedResult::NotApplicable) => panic!("assist should not be applicable!"), 183 (Some(_), ExpectedResult::NotApplicable) => panic!("assist should not be applicable!"),
182 (None, ExpectedResult::After(_)) 184 (
183 | (None, ExpectedResult::Target(_)) 185 None,
184 | (None, ExpectedResult::Unresolved) => { 186 ExpectedResult::After(_) | ExpectedResult::Target(_) | ExpectedResult::Unresolved,
187 ) => {
185 panic!("code action is not applicable") 188 panic!("code action is not applicable")
186 } 189 }
187 (None, ExpectedResult::NotApplicable) => (), 190 (None, ExpectedResult::NotApplicable) => (),
@@ -210,7 +213,7 @@ fn assist_order_field_struct() {
210 let (before_cursor_pos, before) = extract_offset(before); 213 let (before_cursor_pos, before) = extract_offset(before);
211 let (db, file_id) = with_single_file(&before); 214 let (db, file_id) = with_single_file(&before);
212 let frange = FileRange { file_id, range: TextRange::empty(before_cursor_pos) }; 215 let frange = FileRange { file_id, range: TextRange::empty(before_cursor_pos) };
213 let assists = Assist::get(&db, &TEST_CONFIG, AssistResolveStrategy::None, frange); 216 let assists = assists(&db, &TEST_CONFIG, AssistResolveStrategy::None, frange);
214 let mut assists = assists.iter(); 217 let mut assists = assists.iter();
215 218
216 assert_eq!(assists.next().expect("expected assist").label, "Change visibility to pub(crate)"); 219 assert_eq!(assists.next().expect("expected assist").label, "Change visibility to pub(crate)");
@@ -235,7 +238,7 @@ pub fn test_some_range(a: int) -> bool {
235"#, 238"#,
236 ); 239 );
237 240
238 let assists = Assist::get(&db, &TEST_CONFIG, AssistResolveStrategy::None, frange); 241 let assists = assists(&db, &TEST_CONFIG, AssistResolveStrategy::None, frange);
239 let expected = labels(&assists); 242 let expected = labels(&assists);
240 243
241 expect![[r#" 244 expect![[r#"
@@ -264,7 +267,7 @@ pub fn test_some_range(a: int) -> bool {
264 let mut cfg = TEST_CONFIG; 267 let mut cfg = TEST_CONFIG;
265 cfg.allowed = Some(vec![AssistKind::Refactor]); 268 cfg.allowed = Some(vec![AssistKind::Refactor]);
266 269
267 let assists = Assist::get(&db, &cfg, AssistResolveStrategy::None, frange); 270 let assists = assists(&db, &cfg, AssistResolveStrategy::None, frange);
268 let expected = labels(&assists); 271 let expected = labels(&assists);
269 272
270 expect![[r#" 273 expect![[r#"
@@ -279,7 +282,7 @@ pub fn test_some_range(a: int) -> bool {
279 { 282 {
280 let mut cfg = TEST_CONFIG; 283 let mut cfg = TEST_CONFIG;
281 cfg.allowed = Some(vec![AssistKind::RefactorExtract]); 284 cfg.allowed = Some(vec![AssistKind::RefactorExtract]);
282 let assists = Assist::get(&db, &cfg, AssistResolveStrategy::None, frange); 285 let assists = assists(&db, &cfg, AssistResolveStrategy::None, frange);
283 let expected = labels(&assists); 286 let expected = labels(&assists);
284 287
285 expect![[r#" 288 expect![[r#"
@@ -292,7 +295,7 @@ pub fn test_some_range(a: int) -> bool {
292 { 295 {
293 let mut cfg = TEST_CONFIG; 296 let mut cfg = TEST_CONFIG;
294 cfg.allowed = Some(vec![AssistKind::QuickFix]); 297 cfg.allowed = Some(vec![AssistKind::QuickFix]);
295 let assists = Assist::get(&db, &cfg, AssistResolveStrategy::None, frange); 298 let assists = assists(&db, &cfg, AssistResolveStrategy::None, frange);
296 let expected = labels(&assists); 299 let expected = labels(&assists);
297 300
298 expect![[r#""#]].assert_eq(&expected); 301 expect![[r#""#]].assert_eq(&expected);
@@ -317,7 +320,7 @@ pub fn test_some_range(a: int) -> bool {
317 cfg.allowed = Some(vec![AssistKind::RefactorExtract]); 320 cfg.allowed = Some(vec![AssistKind::RefactorExtract]);
318 321
319 { 322 {
320 let assists = Assist::get(&db, &cfg, AssistResolveStrategy::None, frange); 323 let assists = assists(&db, &cfg, AssistResolveStrategy::None, frange);
321 assert_eq!(2, assists.len()); 324 assert_eq!(2, assists.len());
322 let mut assists = assists.into_iter(); 325 let mut assists = assists.into_iter();
323 326
@@ -353,7 +356,7 @@ pub fn test_some_range(a: int) -> bool {
353 } 356 }
354 357
355 { 358 {
356 let assists = Assist::get( 359 let assists = assists(
357 &db, 360 &db,
358 &cfg, 361 &cfg,
359 AssistResolveStrategy::Single(SingleResolve { 362 AssistResolveStrategy::Single(SingleResolve {
@@ -397,7 +400,7 @@ pub fn test_some_range(a: int) -> bool {
397 } 400 }
398 401
399 { 402 {
400 let assists = Assist::get( 403 let assists = assists(
401 &db, 404 &db,
402 &cfg, 405 &cfg,
403 AssistResolveStrategy::Single(SingleResolve { 406 AssistResolveStrategy::Single(SingleResolve {
@@ -462,7 +465,7 @@ pub fn test_some_range(a: int) -> bool {
462 } 465 }
463 466
464 { 467 {
465 let assists = Assist::get(&db, &cfg, AssistResolveStrategy::All, frange); 468 let assists = assists(&db, &cfg, AssistResolveStrategy::All, frange);
466 assert_eq!(2, assists.len()); 469 assert_eq!(2, assists.len());
467 let mut assists = assists.into_iter(); 470 let mut assists = assists.into_iter();
468 471