summaryrefslogtreecommitdiff
path: root/cli/tools/test.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools/test.rs')
-rw-r--r--cli/tools/test.rs41
1 files changed, 23 insertions, 18 deletions
diff --git a/cli/tools/test.rs b/cli/tools/test.rs
index 819f9980c..859e23934 100644
--- a/cli/tools/test.rs
+++ b/cli/tools/test.rs
@@ -11,6 +11,7 @@ use crate::flags::Flags;
use crate::fs_util::collect_specifiers;
use crate::fs_util::is_supported_test_ext;
use crate::fs_util::is_supported_test_path;
+use crate::located_script_name;
use crate::media_type::MediaType;
use crate::module_graph;
use crate::module_graph::GraphBuilder;
@@ -264,21 +265,6 @@ async fn test_specifier(
test_source.push_str(&format!("import \"{}\";\n", specifier));
}
- test_source
- .push_str("await new Promise(resolve => setTimeout(resolve, 0));\n");
-
- test_source.push_str("window.dispatchEvent(new Event('load'));\n");
-
- test_source.push_str(&format!(
- "await Deno[Deno.internal].runTests({});\n",
- json!({
- "filter": filter,
- "shuffle": shuffle,
- }),
- ));
-
- test_source.push_str("window.dispatchEvent(new Event('unload'));\n");
-
let test_file = File {
local: test_specifier.to_file_path().unwrap(),
maybe_types: None,
@@ -323,9 +309,28 @@ async fn test_specifier(
worker.execute_module(&test_specifier).await?;
- worker
- .run_event_loop(maybe_coverage_collector.is_none())
- .await?;
+ worker.js_runtime.execute_script(
+ &located_script_name!(),
+ "window.dispatchEvent(new Event('load'));",
+ )?;
+
+ let test_result = worker.js_runtime.execute_script(
+ &located_script_name!(),
+ &format!(
+ r#"Deno[Deno.internal].runTests({})"#,
+ json!({
+ "filter": filter,
+ "shuffle": shuffle,
+ }),
+ ),
+ )?;
+
+ worker.js_runtime.resolve_value(test_result).await?;
+
+ worker.js_runtime.execute_script(
+ &located_script_name!(),
+ "window.dispatchEvent(new Event('unload'));",
+ )?;
if let Some(coverage_collector) = maybe_coverage_collector.as_mut() {
worker