From be7e2bd8c1883c6bf58db8ff40954ed7ee53b5c5 Mon Sep 17 00:00:00 2001 From: Jesper van den Ende Date: Fri, 6 Oct 2023 23:33:14 +0200 Subject: [PATCH] fix(cli): Support using both `--watch` and `--inspect` at the same time (#20660) Fixes #20525 --- cli/args/flags.rs | 7 +---- cli/tests/integration/watcher_tests.rs | 42 ++++++++++++++++++++++++++ runtime/inspector_server.rs | 3 ++ 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 40aa7b8e33..66981b239f 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -1828,12 +1828,7 @@ fn repl_subcommand() -> Command { fn run_subcommand() -> Command { runtime_args(Command::new("run"), true, true) .arg(check_arg(false)) - .arg( - watch_arg(true) - .conflicts_with("inspect") - .conflicts_with("inspect-wait") - .conflicts_with("inspect-brk"), - ) + .arg(watch_arg(true)) .arg(no_clear_screen_arg()) .arg(executable_ext_arg()) .arg( diff --git a/cli/tests/integration/watcher_tests.rs b/cli/tests/integration/watcher_tests.rs index 1a5fb62035..1ee8a45e08 100644 --- a/cli/tests/integration/watcher_tests.rs +++ b/cli/tests/integration/watcher_tests.rs @@ -1603,3 +1603,45 @@ async fn run_watch_dynamic_imports() { check_alive_then_kill(child); } + +#[tokio::test] +async fn run_watch_inspect() { + let t = TempDir::new(); + let file_to_watch = t.path().join("file_to_watch.js"); + file_to_watch.write( + r#" + console.log("hello world"); + "#, + ); + + let mut child = util::deno_cmd() + .current_dir(util::testdata_path()) + .arg("run") + .arg("--watch") + .arg("--inspect") + .arg("-L") + .arg("debug") + .arg(&file_to_watch) + .env("NO_COLOR", "1") + .stdout(std::process::Stdio::piped()) + .stderr(std::process::Stdio::piped()) + .spawn() + .unwrap(); + let (mut stdout_lines, mut stderr_lines) = child_lines(&mut child); + + wait_contains("Debugger listening", &mut stderr_lines).await; + wait_for_watcher("file_to_watch.js", &mut stderr_lines).await; + wait_contains("hello world", &mut stdout_lines).await; + + file_to_watch.write( + r#" + console.log("updated file"); + "#, + ); + + wait_contains("Restarting", &mut stderr_lines).await; + wait_contains("Debugger listening", &mut stderr_lines).await; + wait_contains("updated file", &mut stdout_lines).await; + + check_alive_then_kill(child); +} diff --git a/runtime/inspector_server.rs b/runtime/inspector_server.rs index 1fb8407902..313b5fd514 100644 --- a/runtime/inspector_server.rs +++ b/runtime/inspector_server.rs @@ -359,6 +359,9 @@ async fn pump_websocket_messages( } } } + else => { + break 'pump; + } } } }