summaryrefslogtreecommitdiff
path: root/cli/tests/integration/flags_tests.rs
blob: 55a83594b420a0e2b09d611bc415776e1d7c50b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.

use std::process::Stdio;
use test_util as util;

#[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")
    .stdout(Stdio::piped())
    .spawn()
    .unwrap()
    .wait_with_output()
    .unwrap();

  assert!(output.status.success());
  let stdout = std::str::from_utf8(&output.stdout).unwrap();
  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",
    "UNSTABLE: 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",
    "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!(stdout.contains(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",
});