summaryrefslogtreecommitdiff
path: root/cli/lsp/testing/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/lsp/testing/server.rs')
-rw-r--r--cli/lsp/testing/server.rs30
1 files changed, 13 insertions, 17 deletions
diff --git a/cli/lsp/testing/server.rs b/cli/lsp/testing/server.rs
index 65a72bed4..58ac7a8c4 100644
--- a/cli/lsp/testing/server.rs
+++ b/cli/lsp/testing/server.rs
@@ -1,7 +1,7 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
use super::collectors::TestCollector;
-use super::definitions::TestDefinitions;
+use super::definitions::TestModule;
use super::execution::TestRun;
use super::lsp_custom;
@@ -47,7 +47,7 @@ pub struct TestServer {
/// A map of run ids to test runs
runs: Arc<Mutex<HashMap<u32, TestRun>>>,
/// Tests that are discovered from a versioned document
- tests: Arc<Mutex<HashMap<ModuleSpecifier, TestDefinitions>>>,
+ tests: Arc<Mutex<HashMap<ModuleSpecifier, TestModule>>>,
/// A channel for requesting that changes to documents be statically analyzed
/// for tests
update_channel: mpsc::UnboundedSender<Arc<StateSnapshot>>,
@@ -59,7 +59,7 @@ impl TestServer {
performance: Arc<Performance>,
maybe_root_uri: Option<ModuleSpecifier>,
) -> Self {
- let tests: Arc<Mutex<HashMap<ModuleSpecifier, TestDefinitions>>> =
+ let tests: Arc<Mutex<HashMap<ModuleSpecifier, TestModule>>> =
Arc::new(Mutex::new(HashMap::new()));
let (update_channel, mut update_rx) =
@@ -109,31 +109,27 @@ impl TestServer {
if let Some(Ok(parsed_source)) =
document.maybe_parsed_source()
{
- let old_tds = tests.remove(specifier).unwrap_or_default();
+ let was_empty = tests
+ .remove(specifier)
+ .map(|tm| tm.is_empty())
+ .unwrap_or(true);
let mut collector = TestCollector::new(
specifier.clone(),
+ script_version,
parsed_source.text_info().clone(),
);
parsed_source.module().visit_with(&mut collector);
- let test_definitions = TestDefinitions {
- discovered: collector.take(),
- injected: Default::default(),
- script_version,
- };
- if !test_definitions.discovered.is_empty() {
+ let test_module = collector.take();
+ if !test_module.is_empty() {
client.send_test_notification(
- test_definitions.as_notification(
- specifier,
- mru.as_ref(),
- parsed_source.text_info(),
- ),
+ test_module.as_replace_notification(mru.as_ref()),
);
- } else if !old_tds.is_empty() {
+ } else if !was_empty {
client.send_test_notification(as_delete_notification(
specifier.clone(),
));
}
- tests.insert(specifier.clone(), test_definitions);
+ tests.insert(specifier.clone(), test_module);
}
}
}