diff options
Diffstat (limited to 'cli/tests/integration/init_tests.rs')
-rw-r--r-- | cli/tests/integration/init_tests.rs | 280 |
1 files changed, 120 insertions, 160 deletions
diff --git a/cli/tests/integration/init_tests.rs b/cli/tests/integration/init_tests.rs index 5ba69b87f..d92bfd371 100644 --- a/cli/tests/integration/init_tests.rs +++ b/cli/tests/integration/init_tests.rs @@ -1,27 +1,21 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. -use std::process::Stdio; use test_util as util; -use test_util::TempDir; use util::assert_contains; +use util::TestContextBuilder; #[test] fn init_subcommand_without_dir() { - let temp_dir = TempDir::new(); - let cwd = temp_dir.path(); - let deno_dir = util::new_deno_dir(); - - let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); - let output = deno_cmd - .current_dir(cwd) - .arg("init") - .stderr(Stdio::piped()) - .spawn() - .unwrap() - .wait_with_output() - .unwrap(); - assert!(output.status.success()); - let stderr = String::from_utf8(output.stderr).unwrap(); + let context = TestContextBuilder::new().use_temp_cwd().build(); + let deno_dir = context.deno_dir(); + + let cwd = deno_dir.path(); + + let output = context.new_command().args("init").split_output().run(); + + output.assert_exit_code(0); + + let stderr = output.stderr(); assert_contains!(stderr, "Project initialized"); assert!(!stderr.contains("cd")); assert_contains!(stderr, "deno run main.ts"); @@ -31,65 +25,52 @@ fn init_subcommand_without_dir() { assert!(cwd.join("deno.jsonc").exists()); - let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); - let output = deno_cmd - .current_dir(cwd) + let output = context + .new_command() .env("NO_COLOR", "1") - .arg("run") - .arg("main.ts") - .stdout(Stdio::piped()) - .spawn() - .unwrap() - .wait_with_output() - .unwrap(); - assert!(output.status.success()); - assert_eq!(output.stdout, b"Add 2 + 3 = 5\n"); - - let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); - let output = deno_cmd - .current_dir(cwd) + .args("run main.ts") + .split_output() + .run(); + + output.assert_exit_code(0); + assert_eq!(output.stdout().as_bytes(), b"Add 2 + 3 = 5\n"); + + let output = context + .new_command() .env("NO_COLOR", "1") - .arg("test") - .stdout(Stdio::piped()) - .spawn() - .unwrap() - .wait_with_output() - .unwrap(); - assert!(output.status.success()); - let stdout = String::from_utf8(output.stdout).unwrap(); - assert_contains!(stdout, "1 passed"); - - let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); - let output = deno_cmd - .current_dir(cwd) + .args("test") + .split_output() + .run(); + + output.assert_exit_code(0); + assert_contains!(output.stdout(), "1 passed"); + output.skip_output_check(); + + let output = context + .new_command() .env("NO_COLOR", "1") - .arg("bench") - .stdout(Stdio::piped()) - .spawn() - .unwrap() - .wait_with_output() - .unwrap(); - assert!(output.status.success()); + .args("bench") + .run(); + + output.assert_exit_code(0); + output.skip_output_check(); } #[test] fn init_subcommand_with_dir_arg() { - let temp_dir = TempDir::new(); - let cwd = temp_dir.path(); - let deno_dir = util::new_deno_dir(); - - let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); - let output = deno_cmd - .current_dir(cwd) - .arg("init") - .arg("my_dir") - .stderr(Stdio::piped()) - .spawn() - .unwrap() - .wait_with_output() - .unwrap(); - assert!(output.status.success()); - let stderr = String::from_utf8(output.stderr).unwrap(); + let context = TestContextBuilder::new().use_temp_cwd().build(); + let deno_dir = context.deno_dir(); + let cwd = deno_dir.path(); + + let output = context + .new_command() + .args("init my_dir") + .split_output() + .run(); + + output.assert_exit_code(0); + + let stderr = output.stderr(); assert_contains!(stderr, "Project initialized"); assert_contains!(stderr, "cd my_dir"); assert_contains!(stderr, "deno run main.ts"); @@ -99,107 +80,86 @@ fn init_subcommand_with_dir_arg() { assert!(cwd.join("my_dir/deno.jsonc").exists()); - let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); - let output = deno_cmd - .current_dir(cwd) + let output = context + .new_command() .env("NO_COLOR", "1") - .arg("run") - .arg("my_dir/main.ts") - .stdout(Stdio::piped()) - .spawn() - .unwrap() - .wait_with_output() - .unwrap(); - assert!(output.status.success()); - assert_eq!(output.stdout, b"Add 2 + 3 = 5\n"); - - let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); - let output = deno_cmd - .current_dir(cwd) + .args("run my_dir/main.ts") + .split_output() + .run(); + + output.assert_exit_code(0); + + assert_eq!(output.stdout().as_bytes(), b"Add 2 + 3 = 5\n"); + output.skip_output_check(); + + let output = context + .new_command() .env("NO_COLOR", "1") - .arg("test") - .arg("my_dir/main_test.ts") - .stdout(Stdio::piped()) - .spawn() - .unwrap() - .wait_with_output() - .unwrap(); - assert!(output.status.success()); - let stdout = String::from_utf8(output.stdout).unwrap(); - assert_contains!(stdout, "1 passed"); - - let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); - let output = deno_cmd - .current_dir(cwd) + .args("test my_dir/main_test.ts") + .split_output() + .run(); + + output.assert_exit_code(0); + assert_contains!(output.stdout(), "1 passed"); + output.skip_output_check(); + + let output = context + .new_command() .env("NO_COLOR", "1") - .arg("bench") - .arg("my_dir/main_bench.ts") - .stdout(Stdio::piped()) - .spawn() - .unwrap() - .wait_with_output() - .unwrap(); - assert!(output.status.success()); + .args("bench my_dir/main_bench.ts") + .split_output() + .run(); + + output.assert_exit_code(0); + output.skip_output_check(); } #[test] fn init_subcommand_with_quiet_arg() { - let temp_dir = TempDir::new(); - let cwd = temp_dir.path(); - let deno_dir = util::new_deno_dir(); - - let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); - let output = deno_cmd - .current_dir(cwd) - .arg("init") - .arg("--quiet") - .stdout(Stdio::piped()) - .spawn() - .unwrap() - .wait_with_output() - .unwrap(); - assert!(output.status.success()); - let stdout = String::from_utf8(output.stdout).unwrap(); - assert_eq!(stdout, ""); + let context = TestContextBuilder::new().use_temp_cwd().build(); + let deno_dir = context.deno_dir(); + let cwd = deno_dir.path(); + + let output = context + .new_command() + .args("init --quiet") + .split_output() + .run(); + + output.assert_exit_code(0); + + assert_eq!(output.stdout(), ""); assert!(cwd.join("deno.jsonc").exists()); - let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); - let output = deno_cmd - .current_dir(cwd) + let output = context + .new_command() .env("NO_COLOR", "1") - .arg("run") - .arg("main.ts") - .stdout(Stdio::piped()) - .spawn() - .unwrap() - .wait_with_output() - .unwrap(); - assert!(output.status.success()); - assert_eq!(output.stdout, b"Add 2 + 3 = 5\n"); - - let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); - let output = deno_cmd - .current_dir(cwd) + .args("run main.ts") + .split_output() + .run(); + + output.assert_exit_code(0); + assert_eq!(output.stdout().as_bytes(), b"Add 2 + 3 = 5\n"); + output.skip_output_check(); + + let output = context + .new_command() .env("NO_COLOR", "1") - .arg("test") - .stdout(Stdio::piped()) - .spawn() - .unwrap() - .wait_with_output() - .unwrap(); - assert!(output.status.success()); - let stdout = String::from_utf8(output.stdout).unwrap(); - assert_contains!(stdout, "1 passed"); - - let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); - let output = deno_cmd - .current_dir(cwd) + .args("test") + .split_output() + .run(); + + output.assert_exit_code(0); + assert_contains!(output.stdout(), "1 passed"); + output.skip_output_check(); + + let output = context + .new_command() .env("NO_COLOR", "1") - .arg("bench") - .stdout(Stdio::piped()) - .spawn() - .unwrap() - .wait_with_output() - .unwrap(); - assert!(output.status.success()); + .args("bench") + .split_output() + .run(); + + output.assert_exit_code(0); + output.skip_output_check(); } |