summaryrefslogtreecommitdiff
path: root/cli/lsp/testing/execution.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2024-08-28 05:15:48 +0100
committerGitHub <noreply@github.com>2024-08-28 05:15:48 +0100
commit97d1635343dc6e93c8dcf4b116922de5b9c57af3 (patch)
tree6edb8630d4ec473c73c47ace90a7053a898f5570 /cli/lsp/testing/execution.rs
parentefcabce1c117a2e0fed8604d887695a0a19a37ad (diff)
fix(lsp): panic on url_to_uri() (#25238)
Diffstat (limited to 'cli/lsp/testing/execution.rs')
-rw-r--r--cli/lsp/testing/execution.rs30
1 files changed, 17 insertions, 13 deletions
diff --git a/cli/lsp/testing/execution.rs b/cli/lsp/testing/execution.rs
index aec91b3e7..4ac565aa0 100644
--- a/cli/lsp/testing/execution.rs
+++ b/cli/lsp/testing/execution.rs
@@ -186,7 +186,7 @@ impl TestRun {
self
.queue
.iter()
- .map(|s| {
+ .filter_map(|s| {
let ids = if let Some((test_module, _)) = tests.get(s) {
if let Some(filter) = self.filters.get(s) {
filter.as_ids(test_module)
@@ -196,10 +196,12 @@ impl TestRun {
} else {
Vec::new()
};
- lsp_custom::EnqueuedTestModule {
- text_document: lsp::TextDocumentIdentifier { uri: url_to_uri(s) },
+ Some(lsp_custom::EnqueuedTestModule {
+ text_document: lsp::TextDocumentIdentifier {
+ uri: url_to_uri(s).ok()?,
+ },
ids,
- }
+ })
})
.collect()
}
@@ -591,6 +593,9 @@ impl LspTestReporter {
let (test_module, _) = files
.entry(specifier.clone())
.or_insert_with(|| (TestModule::new(specifier), "1".to_string()));
+ let Ok(uri) = url_to_uri(&test_module.specifier) else {
+ return;
+ };
let (static_id, is_new) = test_module.register_dynamic(desc);
self.tests.insert(
desc.id,
@@ -601,9 +606,7 @@ impl LspTestReporter {
.client
.send_test_notification(TestingNotification::Module(
lsp_custom::TestModuleNotificationParams {
- text_document: lsp::TextDocumentIdentifier {
- uri: url_to_uri(&test_module.specifier),
- },
+ text_document: lsp::TextDocumentIdentifier { uri },
kind: lsp_custom::TestModuleNotificationKind::Insert,
label: test_module.label(self.maybe_root_uri.as_ref()),
tests: vec![test_module.get_test_data(&static_id)],
@@ -701,6 +704,9 @@ impl LspTestReporter {
let (test_module, _) = files
.entry(specifier.clone())
.or_insert_with(|| (TestModule::new(specifier), "1".to_string()));
+ let Ok(uri) = url_to_uri(&test_module.specifier) else {
+ return;
+ };
let (static_id, is_new) = test_module.register_step_dynamic(
desc,
self.tests.get(&desc.parent_id).unwrap().static_id(),
@@ -714,9 +720,7 @@ impl LspTestReporter {
.client
.send_test_notification(TestingNotification::Module(
lsp_custom::TestModuleNotificationParams {
- text_document: lsp::TextDocumentIdentifier {
- uri: url_to_uri(&test_module.specifier),
- },
+ text_document: lsp::TextDocumentIdentifier { uri },
kind: lsp_custom::TestModuleNotificationKind::Insert,
label: test_module.label(self.maybe_root_uri.as_ref()),
tests: vec![test_module.get_test_data(&static_id)],
@@ -800,14 +804,14 @@ mod tests {
include: Some(vec![
lsp_custom::TestIdentifier {
text_document: lsp::TextDocumentIdentifier {
- uri: url_to_uri(&specifier),
+ uri: url_to_uri(&specifier).unwrap(),
},
id: None,
step_id: None,
},
lsp_custom::TestIdentifier {
text_document: lsp::TextDocumentIdentifier {
- uri: url_to_uri(&non_test_specifier),
+ uri: url_to_uri(&non_test_specifier).unwrap(),
},
id: None,
step_id: None,
@@ -815,7 +819,7 @@ mod tests {
]),
exclude: vec![lsp_custom::TestIdentifier {
text_document: lsp::TextDocumentIdentifier {
- uri: url_to_uri(&specifier),
+ uri: url_to_uri(&specifier).unwrap(),
},
id: Some(
"69d9fe87f64f5b66cb8b631d4fd2064e8224b8715a049be54276c42189ff8f9f"