Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/test_explorer.rs')
| -rw-r--r-- | crates/ide/src/test_explorer.rs | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/crates/ide/src/test_explorer.rs b/crates/ide/src/test_explorer.rs index 2e741021ea..ca47139970 100644 --- a/crates/ide/src/test_explorer.rs +++ b/crates/ide/src/test_explorer.rs @@ -11,7 +11,7 @@ use crate::{navigation_target::ToNav, runnables::runnable_fn, Runnable, TryToNav #[derive(Debug)] pub enum TestItemKind { - Crate, + Crate(CrateId), Module, Function, } @@ -32,15 +32,17 @@ pub(crate) fn discover_test_roots(db: &RootDatabase) -> Vec<TestItem> { crate_graph .iter() .filter(|&id| crate_graph[id].origin.is_local()) - .filter_map(|id| Some(crate_graph[id].display_name.as_ref()?.to_string())) - .map(|id| TestItem { - kind: TestItemKind::Crate, - label: id.clone(), - id, - parent: None, - file: None, - text_range: None, - runnable: None, + .filter_map(|id| { + let test_id = crate_graph[id].display_name.as_ref()?.to_string(); + Some(TestItem { + kind: TestItemKind::Crate(id), + label: test_id.clone(), + id: test_id, + parent: None, + file: None, + text_range: None, + runnable: None, + }) }) .collect() } @@ -118,12 +120,13 @@ pub(crate) fn discover_tests_in_crate(db: &RootDatabase, crate_id: CrateId) -> V let Some(crate_test_id) = &crate_graph[crate_id].display_name else { return vec![]; }; + let kind = TestItemKind::Crate(crate_id); let crate_test_id = crate_test_id.to_string(); let crate_id: Crate = crate_id.into(); let module = crate_id.root_module(); let mut r = vec![TestItem { id: crate_test_id.clone(), - kind: TestItemKind::Crate, + kind, label: crate_test_id.clone(), parent: None, file: None, |