diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2023-08-25 10:12:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-25 11:12:11 +0200 |
commit | 9e31f9452e0b91816b9114f17e7aaa5c226b9337 (patch) | |
tree | 204ea3de422c2d8705952b6250d8606abd6820d3 /cli/lsp/testing/execution.rs | |
parent | 3a2d284c96a7fe0a4a0d0430df79b79b8a4a4422 (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.rs | 33 |
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(¶ms, &tests); assert_eq!(json!(queue), json!([specifier])); let mut exclude = HashMap::new(); |