summaryrefslogtreecommitdiff
path: root/cli/tools/repl/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools/repl/mod.rs')
-rw-r--r--cli/tools/repl/mod.rs30
1 files changed, 25 insertions, 5 deletions
diff --git a/cli/tools/repl/mod.rs b/cli/tools/repl/mod.rs
index a1e741dfd..c25dc00c6 100644
--- a/cli/tools/repl/mod.rs
+++ b/cli/tools/repl/mod.rs
@@ -12,6 +12,7 @@ use deno_core::unsync::spawn_blocking;
use deno_runtime::permissions::Permissions;
use deno_runtime::permissions::PermissionsContainer;
use rustyline::error::ReadlineError;
+use tokio::sync::mpsc::unbounded_channel;
pub(crate) mod cdp;
mod channel;
@@ -28,6 +29,9 @@ pub use session::EvaluationOutput;
pub use session::ReplSession;
pub use session::REPL_INTERNALS_NAME;
+use super::test::TestEvent;
+use super::test::TestEventSender;
+
#[allow(clippy::await_holding_refcell_ref)]
async fn read_line_and_poll(
repl_session: &mut ReplSession,
@@ -114,15 +118,31 @@ pub async fn run(flags: Flags, repl_flags: ReplFlags) -> Result<i32, AnyError> {
.deno_dir()
.ok()
.and_then(|dir| dir.repl_history_file_path());
-
+ let (test_event_sender, test_event_receiver) =
+ unbounded_channel::<TestEvent>();
+ let test_event_sender = TestEventSender::new(test_event_sender);
let mut worker = worker_factory
- .create_main_worker(main_module, permissions)
+ .create_custom_worker(
+ main_module.clone(),
+ permissions,
+ vec![crate::ops::testing::deno_test::init_ops(
+ test_event_sender.clone(),
+ )],
+ Default::default(),
+ )
.await?;
worker.setup_repl().await?;
let worker = worker.into_main_worker();
- let mut repl_session =
- ReplSession::initialize(cli_options, npm_resolver, resolver, worker)
- .await?;
+ let mut repl_session = ReplSession::initialize(
+ cli_options,
+ npm_resolver,
+ resolver,
+ worker,
+ main_module,
+ test_event_sender,
+ test_event_receiver,
+ )
+ .await?;
let mut rustyline_channel = rustyline_channel();
let helper = EditorHelper {