diff options
Diffstat (limited to 'crates/ide_assists/src/tests.rs')
-rw-r--r-- | crates/ide_assists/src/tests.rs | 35 |
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; | |||
16 | use test_utils::{assert_eq_text, extract_offset}; | 16 | use test_utils::{assert_eq_text, extract_offset}; |
17 | 17 | ||
18 | use crate::{ | 18 | use 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 | ||
23 | pub(crate) const TEST_CONFIG: AssistConfig = AssistConfig { | 23 | pub(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] | ||
38 | pub(crate) fn check_assist(assist: Handler, ra_fixture_before: &str, ra_fixture_after: &str) { | 40 | pub(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 | ||