Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/tests.rs')
-rw-r--r--crates/ide-assists/src/tests.rs25
1 files changed, 20 insertions, 5 deletions
diff --git a/crates/ide-assists/src/tests.rs b/crates/ide-assists/src/tests.rs
index cda2ad4327..ade60691b5 100644
--- a/crates/ide-assists/src/tests.rs
+++ b/crates/ide-assists/src/tests.rs
@@ -1,7 +1,7 @@
mod generated;
use expect_test::expect;
-use hir::Semantics;
+use hir::{Semantics, db::HirDatabase, setup_tracing};
use ide_db::{
EditionedFileId, FileRange, RootDatabase, SnippetCap,
assists::ExprFillDefaultMode,
@@ -16,7 +16,7 @@ use test_utils::{assert_eq_text, extract_offset};
use crate::{
Assist, AssistConfig, AssistContext, AssistKind, AssistResolveStrategy, Assists, SingleResolve,
- assists, handlers::Handler,
+ handlers::Handler,
};
pub(crate) const TEST_CONFIG: AssistConfig = AssistConfig {
@@ -103,6 +103,18 @@ pub(crate) const TEST_CONFIG_IMPORT_ONE: AssistConfig = AssistConfig {
prefer_self_ty: false,
};
+fn assists(
+ db: &RootDatabase,
+ config: &AssistConfig,
+ resolve: AssistResolveStrategy,
+ range: ide_db::FileRange,
+) -> Vec<Assist> {
+ hir::attach_db(db, || {
+ HirDatabase::zalsa_register_downcaster(db);
+ crate::assists(db, config, resolve, range)
+ })
+}
+
pub(crate) fn with_single_file(text: &str) -> (RootDatabase, EditionedFileId) {
RootDatabase::with_single_file(text)
}
@@ -168,6 +180,7 @@ pub(crate) fn check_assist_import_one(
// There is no way to choose what assist within a group you want to test against,
// so this is here to allow you choose.
+#[track_caller]
pub(crate) fn check_assist_by_label(
assist: Handler,
#[rust_analyzer::rust_fixture] ra_fixture_before: &str,
@@ -305,6 +318,7 @@ fn check_with_config(
expected: ExpectedResult<'_>,
assist_label: Option<&str>,
) {
+ let _tracing = setup_tracing();
let (mut db, file_with_caret_id, range_or_offset) = RootDatabase::with_range_or_offset(before);
db.enable_proc_attr_macros();
let text_without_caret = db.file_text(file_with_caret_id.file_id(&db)).text(&db).to_string();
@@ -318,7 +332,10 @@ fn check_with_config(
_ => AssistResolveStrategy::All,
};
let mut acc = Assists::new(&ctx, resolve);
- handler(&mut acc, &ctx);
+ hir::attach_db(&db, || {
+ HirDatabase::zalsa_register_downcaster(&db);
+ handler(&mut acc, &ctx);
+ });
let mut res = acc.finish();
let assist = match assist_label {
@@ -453,7 +470,6 @@ pub fn test_some_range(a: int) -> bool {
let expected = labels(&assists);
expect![[r#"
- Convert integer base
Extract into...
Replace if let with match
"#]]
@@ -486,7 +502,6 @@ pub fn test_some_range(a: int) -> bool {
let expected = labels(&assists);
expect![[r#"
- Convert integer base
Extract into...
Replace if let with match
"#]]