Commit 2b39737a authored by Wohlgemuth, Jason's avatar Wohlgemuth, Jason
Browse files

tests: Add some CLI tests

parent 156e4b31
Loading
Loading
Loading
Loading
Loading
+105 −1
Original line number Diff line number Diff line
@@ -113,6 +113,22 @@ version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"

[[package]]
name = "assert_cmd"
version = "2.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d"
dependencies = [
 "anstyle",
 "bstr 1.10.0",
 "doc-comment",
 "libc",
 "predicates",
 "predicates-core",
 "predicates-tree",
 "wait-timeout",
]

[[package]]
name = "async-broadcast"
version = "0.5.1"
@@ -417,6 +433,17 @@ dependencies = [
 "memchr",
]

[[package]]
name = "bstr"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c"
dependencies = [
 "memchr",
 "regex-automata 0.4.6",
 "serde",
]

[[package]]
name = "bumpalo"
version = "3.15.4"
@@ -561,6 +588,9 @@ dependencies = [
 "anstyle",
 "clap_lex",
 "strsim 0.11.1",
 "terminal_size",
 "unicase",
 "unicode-width",
]

[[package]]
@@ -861,6 +891,12 @@ dependencies = [
 "unicode-xid",
]

[[package]]
name = "difflib"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"

[[package]]
name = "digest"
version = "0.10.7"
@@ -912,6 +948,12 @@ dependencies = [
 "winapi 0.3.9",
]

[[package]]
name = "doc-comment"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"

[[package]]
name = "dotenvy"
version = "0.15.7"
@@ -1294,7 +1336,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c152169ef1e421390738366d2f796655fec62621dabbd0fd476f905934061e4a"
dependencies = [
 "aho-corasick 0.7.20",
 "bstr",
 "bstr 0.2.17",
 "fnv",
 "log",
 "regex",
@@ -2156,6 +2198,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
name = "pipe-cli"
version = "0.0.3"
dependencies = [
 "assert_cmd",
 "cargo-watch",
 "clap 4.5.2",
 "clap-verbosity-flag",
@@ -2273,6 +2316,33 @@ version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"

[[package]]
name = "predicates"
version = "3.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97"
dependencies = [
 "anstyle",
 "difflib",
 "predicates-core",
]

[[package]]
name = "predicates-core"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931"

[[package]]
name = "predicates-tree"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13"
dependencies = [
 "predicates-core",
 "termtree",
]

[[package]]
name = "proc-macro-crate"
version = "1.3.1"
@@ -2899,6 +2969,16 @@ dependencies = [
 "winapi-util",
]

[[package]]
name = "terminal_size"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
dependencies = [
 "rustix 0.38.31",
 "windows-sys 0.48.0",
]

[[package]]
name = "terminfo"
version = "0.7.5"
@@ -2912,6 +2992,12 @@ dependencies = [
 "phf_codegen",
]

[[package]]
name = "termtree"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"

[[package]]
name = "textwrap"
version = "0.11.0"
@@ -3151,6 +3237,15 @@ dependencies = [
 "winapi 0.3.9",
]

[[package]]
name = "unicase"
version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
dependencies = [
 "version_check",
]

[[package]]
name = "unicode-bidi"
version = "0.3.15"
@@ -3252,6 +3347,15 @@ version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"

[[package]]
name = "wait-timeout"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
dependencies = [
 "libc",
]

[[package]]
name = "waker-fn"
version = "1.1.1"
+3 −2
Original line number Diff line number Diff line
@@ -8,9 +8,10 @@ lint:
	@cargo fmt --verbose
	@cargo clippy --no-deps --all-targets --fix --allow-dirty

test: lint
test: clean lint
	@cargo build
	@cargo test
	@cargo tarpaulin --out lcov --ignore-tests
	@cargo tarpaulin --out lcov --line --skip-clean

test-cross: clean
	@for target in $(TARGETS) ; do \
+90 −90
Original line number Diff line number Diff line
@@ -108,99 +108,98 @@ LH:0
end_of_record
TN:
SF:/root/dev/command/pipe-cli/src/commands/run/mod.rs
FN:18,run
FN:19,run
FNF:1
FNDA:0,run
DA:18,0
DA:28,0
DA:19,0
DA:29,0
DA:30,0
DA:32,0
DA:31,0
DA:33,0
DA:35,0
DA:37,0
DA:34,0
DA:36,0
DA:38,0
DA:39,0
DA:41,0
DA:40,0
DA:42,0
DA:44,0
DA:43,0
DA:45,0
DA:46,0
DA:49,0
DA:47,0
DA:50,0
DA:52,0
DA:51,0
DA:53,0
DA:54,0
DA:55,0
DA:56,0
DA:57,0
DA:61,0
DA:64,0
DA:58,0
DA:62,0
DA:65,0
DA:66,0
DA:68,0
DA:67,0
DA:69,0
DA:73,0
DA:77,0
DA:79,0
DA:81,0
DA:83,0
DA:85,0
DA:87,0
DA:90,0
DA:70,0
DA:74,0
DA:78,0
DA:80,0
DA:82,0
DA:84,0
DA:86,0
DA:88,0
DA:91,0
DA:92,0
DA:95,0
DA:97,0
DA:93,0
DA:96,0
DA:98,0
DA:99,0
DA:101,0
DA:106,0
DA:108,0
DA:110,0
DA:112,0
DA:100,0
DA:102,0
DA:107,0
DA:109,0
DA:111,0
DA:113,0
DA:117,0
DA:114,0
DA:118,0
DA:119,0
DA:122,0
DA:124,0
DA:120,0
DA:123,0
DA:125,0
DA:127,0
DA:130,0
DA:126,0
DA:128,0
DA:131,0
DA:133,0
DA:132,0
DA:134,0
DA:136,0
DA:135,0
DA:137,0
DA:138,0
DA:139,0
DA:140,0
DA:141,0
DA:143,0
DA:153,0
DA:142,0
DA:144,0
DA:154,0
DA:155,0
DA:156,0
DA:158,0
DA:162,0
DA:164,0
DA:166,0
DA:157,0
DA:159,0
DA:163,0
DA:165,0
DA:167,0
DA:171,0
DA:181,0
DA:168,0
DA:172,0
DA:182,0
DA:183,0
DA:184,0
DA:186,0
DA:191,0
DA:185,0
DA:187,0
DA:192,0
DA:196,0
DA:199,0
DA:202,0
DA:204,0
DA:206,0
DA:209,0
DA:193,0
DA:197,0
DA:200,0
DA:203,0
DA:205,0
DA:207,0
DA:210,0
DA:211,0
DA:212,0
@@ -210,27 +209,27 @@ DA:215,0
DA:216,0
DA:217,0
DA:218,0
DA:220,0
DA:223,0
DA:226,0
DA:229,0
DA:231,0
DA:219,0
DA:221,0
DA:224,0
DA:227,0
DA:230,0
DA:232,0
DA:233,0
DA:234,0
DA:235,0
DA:236,0
DA:237,0
DA:239,0
DA:242,0
DA:245,0
DA:249,0
DA:238,0
DA:240,0
DA:243,0
DA:246,0
DA:250,0
DA:251,0
DA:252,0
DA:254,0
DA:253,0
DA:255,0
DA:257,0
DA:256,0
DA:258,0
DA:259,0
DA:260,0
@@ -238,13 +237,14 @@ DA:261,0
DA:262,0
DA:263,0
DA:264,0
DA:266,0
DA:269,0
DA:272,0
DA:275,0
DA:277,0
DA:280,0
DA:282,0
DA:265,0
DA:267,0
DA:270,0
DA:273,0
DA:276,0
DA:278,0
DA:281,0
DA:283,0
LF:134
LH:0
end_of_record
@@ -457,7 +457,7 @@ FNDA:0,Label::read
FNDA:0,Label::rejected
FNDA:0,Label::run
FNDA:0,Label::using
FNDA:1,ModuleUri<'_>::from
FNDA:2,ModuleUri<'_>::from
FNDA:1,ModuleUri<'_>::hash
FNDA:0,ModuleUri<'_>::get_whitelist
FNDA:0,ModuleUri<'_>::is_allowed
@@ -520,11 +520,11 @@ DA:495,2
DA:497,0
DA:498,0
DA:501,2
DA:502,1
DA:503,2
DA:502,2
DA:503,4
DA:504,0
DA:506,3
DA:507,1
DA:506,6
DA:507,2
DA:514,1
DA:515,2
DA:516,1
@@ -616,8 +616,8 @@ DA:649,0
DA:650,0
DA:651,0
DA:653,1
DA:654,1
DA:655,1
DA:654,3
DA:655,3
DA:657,0
DA:658,0
DA:659,0
@@ -630,10 +630,10 @@ DA:667,0
DA:669,0
DA:670,0
DA:671,0
DA:675,1
DA:675,2
DA:676,2
DA:677,3
DA:678,1
DA:677,5
DA:678,2
DA:679,2
DA:680,0
DA:682,1
@@ -641,14 +641,14 @@ DA:685,1
DA:686,1
DA:687,1
DA:688,1
DA:689,1
DA:689,2
DA:690,0
DA:692,2
DA:696,2
DA:697,2
DA:699,2
DA:692,4
DA:696,4
DA:697,4
DA:699,4
DA:700,2
DA:702,1
DA:702,2
DA:705,0
DA:709,0
DA:710,0
@@ -962,11 +962,11 @@ DA:1459,0
DA:1460,0
DA:1462,0
DA:1476,2
DA:1477,1
DA:1478,2
DA:1479,1
DA:1480,3
DA:1481,3
DA:1477,2
DA:1478,4
DA:1479,4
DA:1480,12
DA:1481,8
DA:1483,1
DA:1484,3
DA:1485,1
+2 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ edition = "2021"

[dependencies]
pipe-lib = { path = "../pipe-lib" }
clap = { version = "4.4.2", features = ["derive"] }
clap = { version = "4.4.2", features = ["derive", "unstable-doc"] }
console = { version = "0.15.7", default-features = false, features = ["ansi-parsing"] }
glob = "0.3.1"
indicatif = "0.17.6"
@@ -24,6 +24,7 @@ tracing = { workspace = true }
tracing-log = { workspace = true }
tracing-subscriber = { workspace = true }
uriparse = { workspace = true }
assert_cmd = "2.0.16"

[dev-dependencies]
cargo-watch = "8.4.1"
+61 −0
Original line number Diff line number Diff line
use crate::cli::Arguments;
use assert_cmd::Command;
use clap::CommandFactory;

#[test]
fn test_cli() {
    Arguments::command().debug_assert();
}

#[test]
fn test_help() {
    let expected = "Multi-tool for verifying myriad aspects of data processing pipelines

   ███████  ██  ███████  ████▓▒░
   ██   ██  ██  ██   ██  ██
░▒▓██████████████████████████▓▒░
   ██       ██  ██       ██
   ██       ██  ██       ████▓▒░
Parallel Integration & Processing Engine

Usage: pipe-cli [OPTIONS] [COMMAND]

Commands:
  check   Run checks on a given path to a directory
  doctor  Check environment parameters and verify PIPE requirements are met
  run     Run workflow using configuration file
  help    Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose...
          Increase logging verbosity

  -q, --quiet...
          Decrease logging verbosity

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version\n";
    let mut cmd = Command::cargo_bin("pipe-cli").unwrap();
    let assert = cmd.arg("help").assert();
    assert.success().stdout(expected);
}

#[test]
fn test_run() {
    let expected = "error: a value is required for '--config <PATH>' but none was supplied

For more information, try '--help'.\n";
    let mut cmd = Command::cargo_bin("pipe-cli").unwrap();
    let assert = cmd.args(["run", "--config"]).assert();
    assert.failure().code(2).stderr(expected);
}

#[test]
fn test_version() {
    let expected = "pipe-cli 0.0.3\n";
    let mut cmd = Command::cargo_bin("pipe-cli").unwrap();
    let assert = cmd.args(["--version"]).assert();
    assert.success().code(0).stdout(expected);
}