summaryrefslogtreecommitdiff
path: root/tests/integration/flags_tests.rs
diff options
context:
space:
mode:
authorMatt Mastracci <matthew@mastracci.com>2024-02-10 13:22:13 -0700
committerGitHub <noreply@github.com>2024-02-10 20:22:13 +0000
commitf5e46c9bf2f50d66a953fa133161fc829cecff06 (patch)
tree8faf2f5831c1c7b11d842cd9908d141082c869a5 /tests/integration/flags_tests.rs
parentd2477f780630a812bfd65e3987b70c0d309385bb (diff)
chore: move cli/tests/ -> tests/ (#22369)
This looks like a massive PR, but it's only a move from cli/tests -> tests, and updates of relative paths for files. This is the first step towards aggregate all of the integration test files under tests/, which will lead to a set of integration tests that can run without the CLI binary being built. While we could leave these tests under `cli`, it would require us to keep a more complex directory structure for the various test runners. In addition, we have a lot of complexity to ignore various test files in the `cli` project itself (cargo publish exclusion rules, autotests = false, etc). And finally, the `tests/` folder will eventually house the `test_ffi`, `test_napi` and other testing code, reducing the size of the root repo directory. For easier review, the extremely large and noisy "move" is in the first commit (with no changes -- just a move), while the remainder of the changes to actual files is in the second commit.
Diffstat (limited to 'tests/integration/flags_tests.rs')
-rw-r--r--tests/integration/flags_tests.rs86
1 files changed, 86 insertions, 0 deletions
diff --git a/tests/integration/flags_tests.rs b/tests/integration/flags_tests.rs
new file mode 100644
index 000000000..a22cb0548
--- /dev/null
+++ b/tests/integration/flags_tests.rs
@@ -0,0 +1,86 @@
+// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+
+use test_util as util;
+use util::assert_contains;
+
+#[test]
+fn help_flag() {
+ let status = util::deno_cmd()
+ .current_dir(util::testdata_path())
+ .arg("--help")
+ .spawn()
+ .unwrap()
+ .wait()
+ .unwrap();
+ assert!(status.success());
+}
+
+#[test]
+fn help_output() {
+ let output = util::deno_cmd()
+ .current_dir(util::testdata_path())
+ .arg("--help")
+ .run();
+
+ let stdout = output.combined_output();
+ let subcommand_descriptions = vec![
+ "Run a JavaScript or TypeScript program",
+ "Run benchmarks",
+ "Bundle module and dependencies into single file",
+ "Cache the dependencies",
+ "Type-check the dependencies",
+ "Compile the script into a self contained executable",
+ "Generate shell completions",
+ "Print coverage reports",
+ "Show documentation for a module",
+ "Eval script",
+ "Format source files",
+ "Initialize a new project",
+ "Show info about cache or info related to source file",
+ "Install script as an executable",
+ "Uninstall a script previously installed with deno install",
+ "Start the language server",
+ "Lint source files",
+ "Read Eval Print Loop",
+ "Run a task defined in the configuration file",
+ "Run tests",
+ "Print runtime TypeScript declarations",
+ #[cfg(feature = "upgrade")]
+ "Upgrade deno executable to given version",
+ "Vendor remote modules into a local directory",
+ "Print this message or the help of the given subcommand(s)",
+ ];
+
+ for description in subcommand_descriptions {
+ assert_contains!(stdout, description);
+ }
+}
+
+#[test]
+fn version_short_flag() {
+ let status = util::deno_cmd()
+ .current_dir(util::testdata_path())
+ .arg("-V")
+ .spawn()
+ .unwrap()
+ .wait()
+ .unwrap();
+ assert!(status.success());
+}
+
+#[test]
+fn version_long_flag() {
+ let status = util::deno_cmd()
+ .current_dir(util::testdata_path())
+ .arg("--version")
+ .spawn()
+ .unwrap()
+ .wait()
+ .unwrap();
+ assert!(status.success());
+}
+
+itest!(types {
+ args: "types",
+ output: "types/types.out",
+});