summaryrefslogtreecommitdiff
path: root/cli/lsp/testing/server.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/server.rs
parentefcabce1c117a2e0fed8604d887695a0a19a37ad (diff)
fix(lsp): panic on url_to_uri() (#25238)
Diffstat (limited to 'cli/lsp/testing/server.rs')
-rw-r--r--cli/lsp/testing/server.rs30
1 files changed, 18 insertions, 12 deletions
diff --git a/cli/lsp/testing/server.rs b/cli/lsp/testing/server.rs
index 0c34ea7bc..c9c39d9ff 100644
--- a/cli/lsp/testing/server.rs
+++ b/cli/lsp/testing/server.rs
@@ -27,14 +27,16 @@ use tower_lsp::jsonrpc::Error as LspError;
use tower_lsp::jsonrpc::Result as LspResult;
use tower_lsp::lsp_types as lsp;
-fn as_delete_notification(url: ModuleSpecifier) -> TestingNotification {
- TestingNotification::DeleteModule(
+fn as_delete_notification(
+ url: &ModuleSpecifier,
+) -> Result<TestingNotification, AnyError> {
+ Ok(TestingNotification::DeleteModule(
lsp_custom::TestModuleDeleteNotificationParams {
text_document: lsp::TextDocumentIdentifier {
- uri: url_to_uri(&url),
+ uri: url_to_uri(url)?,
},
},
- )
+ ))
}
pub type TestServerTests =
@@ -126,20 +128,24 @@ impl TestServer {
.map(|tm| tm.as_ref().clone())
.unwrap_or_else(|| TestModule::new(specifier.clone()));
if !test_module.is_empty() {
- client.send_test_notification(
- test_module.as_replace_notification(mru.as_ref()),
- );
+ if let Ok(params) =
+ test_module.as_replace_notification(mru.as_ref())
+ {
+ client.send_test_notification(params);
+ }
} else if !was_empty {
- client.send_test_notification(as_delete_notification(
- specifier.clone(),
- ));
+ if let Ok(params) = as_delete_notification(specifier) {
+ client.send_test_notification(params);
+ }
}
tests
.insert(specifier.clone(), (test_module, script_version));
}
}
- for key in keys {
- client.send_test_notification(as_delete_notification(key));
+ for key in &keys {
+ if let Ok(params) = as_delete_notification(key) {
+ client.send_test_notification(params);
+ }
}
performance.measure(mark);
}