diff options
Diffstat (limited to 'cli/lsp/testing/server.rs')
-rw-r--r-- | cli/lsp/testing/server.rs | 30 |
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); } } } |