summaryrefslogtreecommitdiff
path: root/cli/lsp/testing/execution.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2023-08-25 10:12:11 +0100
committerGitHub <noreply@github.com>2023-08-25 11:12:11 +0200
commit9e31f9452e0b91816b9114f17e7aaa5c226b9337 (patch)
tree204ea3de422c2d8705952b6250d8606abd6820d3 /cli/lsp/testing/execution.rs
parent3a2d284c96a7fe0a4a0d0430df79b79b8a4a4422 (diff)
fix(lsp/testing): don't queue modules without tests (#20277)
Fixes https://github.com/denoland/vscode_deno/issues/890.
Diffstat (limited to 'cli/lsp/testing/execution.rs')
-rw-r--r--cli/lsp/testing/execution.rs33
1 files changed, 22 insertions, 11 deletions
diff --git a/cli/lsp/testing/execution.rs b/cli/lsp/testing/execution.rs
index 6474d7354..28c6a5de9 100644
--- a/cli/lsp/testing/execution.rs
+++ b/cli/lsp/testing/execution.rs
@@ -71,11 +71,7 @@ fn as_queue_and_filters(
}
}
}
- }
-
- // if we didn't have any specific include filters, we assume that all modules
- // will be tested
- if queue.is_empty() {
+ } else {
queue.extend(tests.keys().cloned());
}
@@ -97,6 +93,8 @@ fn as_queue_and_filters(
}
}
+ queue.retain(|s| !tests.get(s).unwrap().is_empty());
+
(queue, filters)
}
@@ -816,16 +814,28 @@ mod tests {
#[test]
fn test_as_queue_and_filters() {
let specifier = ModuleSpecifier::parse("file:///a/file.ts").unwrap();
+ // Regression test for https://github.com/denoland/vscode_deno/issues/890.
+ let non_test_specifier =
+ ModuleSpecifier::parse("file:///a/no_tests.ts").unwrap();
let params = lsp_custom::TestRunRequestParams {
id: 1,
kind: lsp_custom::TestRunKind::Run,
- include: Some(vec![lsp_custom::TestIdentifier {
- text_document: lsp::TextDocumentIdentifier {
- uri: specifier.clone(),
+ include: Some(vec![
+ lsp_custom::TestIdentifier {
+ text_document: lsp::TextDocumentIdentifier {
+ uri: specifier.clone(),
+ },
+ id: None,
+ step_id: None,
},
- id: None,
- step_id: None,
- }]),
+ lsp_custom::TestIdentifier {
+ text_document: lsp::TextDocumentIdentifier {
+ uri: non_test_specifier.clone(),
+ },
+ id: None,
+ step_id: None,
+ },
+ ]),
exclude: vec![lsp_custom::TestIdentifier {
text_document: lsp::TextDocumentIdentifier {
uri: specifier.clone(),
@@ -860,6 +870,7 @@ mod tests {
script_version: "1".to_string(),
};
tests.insert(specifier.clone(), test_definitions.clone());
+ tests.insert(non_test_specifier, Default::default());
let (queue, filters) = as_queue_and_filters(&params, &tests);
assert_eq!(json!(queue), json!([specifier]));
let mut exclude = HashMap::new();