summaryrefslogtreecommitdiff
path: root/cli/tests/integration_tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests/integration_tests.rs')
-rw-r--r--cli/tests/integration_tests.rs47
1 files changed, 37 insertions, 10 deletions
diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs
index 5772c1a5c..c88c59587 100644
--- a/cli/tests/integration_tests.rs
+++ b/cli/tests/integration_tests.rs
@@ -399,11 +399,7 @@ fn fmt_stdin_error() {
#[test]
fn upgrade_in_tmpdir() {
let temp_dir = TempDir::new().unwrap();
- let exe_path = if cfg!(windows) {
- temp_dir.path().join("deno")
- } else {
- temp_dir.path().join("deno.exe")
- };
+ let exe_path = temp_dir.path().join("deno");
let _ = std::fs::copy(util::deno_exe_path(), &exe_path).unwrap();
assert!(exe_path.exists());
let _mtime1 = std::fs::metadata(&exe_path).unwrap().modified().unwrap();
@@ -444,11 +440,7 @@ fn upgrade_with_space_in_path() {
#[test]
fn upgrade_with_version_in_tmpdir() {
let temp_dir = TempDir::new().unwrap();
- let exe_path = if cfg!(windows) {
- temp_dir.path().join("deno")
- } else {
- temp_dir.path().join("deno.exe")
- };
+ let exe_path = temp_dir.path().join("deno");
let _ = std::fs::copy(util::deno_exe_path(), &exe_path).unwrap();
assert!(exe_path.exists());
let _mtime1 = std::fs::metadata(&exe_path).unwrap().modified().unwrap();
@@ -471,6 +463,41 @@ fn upgrade_with_version_in_tmpdir() {
// TODO(ry) assert!(mtime1 < mtime2);
}
+// Warning: this test requires internet access.
+#[test]
+fn upgrade_with_out_in_tmpdir() {
+ let temp_dir = TempDir::new().unwrap();
+ let exe_path = temp_dir.path().join("deno");
+ let new_exe_path = temp_dir.path().join("foo");
+ let _ = std::fs::copy(util::deno_exe_path(), &exe_path).unwrap();
+ assert!(exe_path.exists());
+ let mtime1 = std::fs::metadata(&exe_path).unwrap().modified().unwrap();
+ let status = Command::new(&exe_path)
+ .arg("upgrade")
+ .arg("--version")
+ .arg("1.0.2")
+ .arg("--output")
+ .arg(&new_exe_path.to_str().unwrap())
+ .spawn()
+ .unwrap()
+ .wait()
+ .unwrap();
+ assert!(status.success());
+ assert!(new_exe_path.exists());
+ let mtime2 = std::fs::metadata(&exe_path).unwrap().modified().unwrap();
+ assert_eq!(mtime1, mtime2); // Original exe_path was not changed.
+
+ let v = String::from_utf8(
+ Command::new(&new_exe_path)
+ .arg("-V")
+ .output()
+ .unwrap()
+ .stdout,
+ )
+ .unwrap();
+ assert!(v.contains("1.0.2"));
+}
+
#[test]
fn installer_test_local_module_run() {
let temp_dir = TempDir::new().expect("tempdir fail");