Skip to content

Commit 8f93e7b

Browse files
committed
remove duplication in tests
1 parent 46f74e3 commit 8f93e7b

File tree

1 file changed

+33
-55
lines changed

1 file changed

+33
-55
lines changed

crates/ra_hir/src/nameres/tests.rs

Lines changed: 33 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -322,9 +322,33 @@ fn reexport_across_crates() {
322322
);
323323
}
324324

325+
fn check_item_map_is_not_recomputed(initial: &str, file_change: &str) {
326+
let (mut db, pos) = MockDatabase::with_position(initial);
327+
let source_root = db.file_source_root(pos.file_id);
328+
{
329+
let events = db.log_executed(|| {
330+
db.item_map(source_root).unwrap();
331+
});
332+
assert!(format!("{:?}", events).contains("item_map"))
333+
}
334+
db.query_mut(ra_db::FileTextQuery)
335+
.set(pos.file_id, Arc::new(file_change.to_string()));
336+
337+
{
338+
let events = db.log_executed(|| {
339+
db.item_map(source_root).unwrap();
340+
});
341+
assert!(
342+
!format!("{:?}", events).contains("item_map"),
343+
"{:#?}",
344+
events
345+
)
346+
}
347+
}
348+
325349
#[test]
326350
fn typing_inside_a_function_should_not_invalidate_item_map() {
327-
let (mut db, pos) = MockDatabase::with_position(
351+
check_item_map_is_not_recomputed(
328352
"
329353
//- /lib.rs
330354
mod foo;
@@ -342,42 +366,19 @@ fn typing_inside_a_function_should_not_invalidate_item_map() {
342366
}
343367
}
344368
",
345-
);
346-
let source_root = db.file_source_root(pos.file_id);
347-
{
348-
let events = db.log_executed(|| {
349-
db.item_map(source_root).unwrap();
350-
});
351-
assert!(format!("{:?}", events).contains("item_map"))
352-
}
353-
354-
let new_text = "
369+
"
355370
salsa::query_group! {
356371
trait Baz {
357372
fn foo() -> i32 { 92 }
358373
}
359374
}
360-
"
361-
.to_string();
362-
363-
db.query_mut(ra_db::FileTextQuery)
364-
.set(pos.file_id, Arc::new(new_text));
365-
366-
{
367-
let events = db.log_executed(|| {
368-
db.item_map(source_root).unwrap();
369-
});
370-
assert!(
371-
!format!("{:?}", events).contains("item_map"),
372-
"{:#?}",
373-
events
374-
)
375-
}
375+
",
376+
);
376377
}
377378

378379
#[test]
379380
fn typing_inside_a_function_inside_a_macro_should_not_invalidate_item_map() {
380-
let (mut db, pos) = MockDatabase::with_position(
381+
check_item_map_is_not_recomputed(
381382
"
382383
//- /lib.rs
383384
mod foo;<|>
@@ -392,36 +393,13 @@ fn typing_inside_a_function_inside_a_macro_should_not_invalidate_item_map() {
392393
393394
//- /foo/bar.rs
394395
pub struct Baz;
395-
",
396-
);
397-
let source_root = db.file_source_root(pos.file_id);
398-
{
399-
let events = db.log_executed(|| {
400-
db.item_map(source_root).unwrap();
401-
});
402-
assert!(format!("{:?}", events).contains("item_map"))
403-
}
404-
405-
let new_text = "
396+
",
397+
"
406398
mod foo;
407399
408400
use crate::foo::bar::Baz;
409401
410402
fn foo() -> i32 { 92 }
411-
"
412-
.to_string();
413-
414-
db.query_mut(ra_db::FileTextQuery)
415-
.set(pos.file_id, Arc::new(new_text));
416-
417-
{
418-
let events = db.log_executed(|| {
419-
db.item_map(source_root).unwrap();
420-
});
421-
assert!(
422-
!format!("{:?}", events).contains("item_map"),
423-
"{:#?}",
424-
events
425-
)
426-
}
403+
",
404+
);
427405
}

0 commit comments

Comments
 (0)