summaryrefslogtreecommitdiff
path: root/cli/tests/integration/run_tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests/integration/run_tests.rs')
-rw-r--r--cli/tests/integration/run_tests.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs
index 2d96fab8f..d6a5a4c25 100644
--- a/cli/tests/integration/run_tests.rs
+++ b/cli/tests/integration/run_tests.rs
@@ -2305,3 +2305,39 @@ fn issue12740() {
.unwrap();
assert!(!status.success());
}
+
+/// Regression test for https://github.com/denoland/deno/issues/12807.
+#[test]
+fn issue12807() {
+ let mod_dir = TempDir::new().expect("tempdir fail");
+ let mod1_path = mod_dir.path().join("mod1.ts");
+ let mod2_path = mod_dir.path().join("mod2.ts");
+ let mut deno_cmd = util::deno_cmd();
+ // With a fresh `DENO_DIR`, run a module with a dependency and a type error.
+ std::fs::write(&mod1_path, "import './mod2.ts'; Deno.exit('0');").unwrap();
+ std::fs::write(&mod2_path, "console.log('Hello, world!');").unwrap();
+ let status = deno_cmd
+ .current_dir(util::testdata_path())
+ .arg("run")
+ .arg(&mod1_path)
+ .stderr(std::process::Stdio::null())
+ .stdout(std::process::Stdio::null())
+ .spawn()
+ .unwrap()
+ .wait()
+ .unwrap();
+ assert!(!status.success());
+ // Fix the type error and run again.
+ std::fs::write(&mod1_path, "import './mod2.ts'; Deno.exit(0);").unwrap();
+ let status = deno_cmd
+ .current_dir(util::testdata_path())
+ .arg("run")
+ .arg(&mod1_path)
+ .stderr(std::process::Stdio::null())
+ .stdout(std::process::Stdio::null())
+ .spawn()
+ .unwrap()
+ .wait()
+ .unwrap();
+ assert!(status.success());
+}