Skip to content

Commit

Permalink
Auto merge of #16847 - HKalbasi:test-explorer, r=HKalbasi
Browse files Browse the repository at this point in the history
Distinguish integration tests from crates in test explorer

Fix part of #16827
  • Loading branch information
bors committed Mar 15, 2024
2 parents f9a4d05 + dcfc9cc commit d7ec7a5
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 13 deletions.
25 changes: 14 additions & 11 deletions crates/ide/src/test_explorer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use crate::{navigation_target::ToNav, runnables::runnable_fn, Runnable, TryToNav

#[derive(Debug)]
pub enum TestItemKind {
Crate,
Crate(CrateId),
Module,
Function,
}
Expand All @@ -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()
}
Expand Down Expand Up @@ -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,
Expand Down
19 changes: 17 additions & 2 deletions crates/rust-analyzer/src/lsp/to_proto.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1519,13 +1519,28 @@ pub(crate) fn test_item(
id: test_item.id,
label: test_item.label,
kind: match test_item.kind {
ide::TestItemKind::Crate => lsp_ext::TestItemKind::Package,
ide::TestItemKind::Crate(id) => 'b: {
let Some((cargo_ws, target)) = snap.cargo_target_for_crate_root(id) else {
break 'b lsp_ext::TestItemKind::Package;
};
let target = &cargo_ws[target];
match target.kind {
project_model::TargetKind::Bin
| project_model::TargetKind::Lib { .. }
| project_model::TargetKind::Example
| project_model::TargetKind::BuildScript
| project_model::TargetKind::Other => lsp_ext::TestItemKind::Package,
project_model::TargetKind::Test | project_model::TargetKind::Bench => {
lsp_ext::TestItemKind::Test
}
}
}
ide::TestItemKind::Module => lsp_ext::TestItemKind::Module,
ide::TestItemKind::Function => lsp_ext::TestItemKind::Test,
},
can_resolve_children: matches!(
test_item.kind,
ide::TestItemKind::Crate | ide::TestItemKind::Module
ide::TestItemKind::Crate(_) | ide::TestItemKind::Module
),
parent: test_item.parent,
text_document: test_item
Expand Down

0 comments on commit d7ec7a5

Please sign in to comment.