Skip to content

Commit 3ec3997

Browse files
committed
Switch to clap 4 (incomplete)
1 parent 6b7a267 commit 3ec3997

File tree

4 files changed

+207
-2
lines changed

4 files changed

+207
-2
lines changed

Cargo.lock

+126-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+4
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,7 @@ clap_complete = "4.1.2"
5959
lazy_static = "1.4.0"
6060
simplelog = { version = "^0.12.0", features = ["paris"] }
6161
static_vcruntime = "2.0"
62+
63+
[dev-dependencies]
64+
assert_cmd = "2.0.8"
65+
predicates = "2.1.5"

tests/rig-add.rs

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
use assert_cmd::prelude::*; // Add methods on commands
2+
use predicates::prelude::*; // Used for writing assertions
3+
use std::process::Command; // Run programs
4+
5+
#[test]
6+
fn rig_add_invalid_version() -> Result<(), Box<dyn std::error::Error>> {
7+
let mut cmd = Command::cargo_bin("rig")?;
8+
cmd.args(["add", "foobar"]);
9+
cmd.assert()
10+
.failure()
11+
.stderr(predicate::str::contains("Failed to resolve R version"));
12+
13+
Ok(())
14+
}
15+
16+
#[test]
17+
fn rig_add() -> Result<(), Box<dyn std::error::Error>> {
18+
let mut cmd = Command::cargo_bin("rig")?;
19+
cmd.args(["add", "4.1"]);
20+
cmd.assert()
21+
.success();
22+
23+
let mut cmd2 = Command::cargo_bin("rig")?;
24+
cmd2.args(["ls", "--json"]);
25+
cmd2.assert()
26+
.success()
27+
.stdout(predicate::str::contains("\"name\": \"4.1"));
28+
29+
let mut cmd3 = Command::cargo_bin("rig")?;
30+
cmd3.args(["add", "4.2"]);
31+
cmd3.assert()
32+
.success();
33+
34+
let mut cmd4 = Command::cargo_bin("rig")?;
35+
cmd4.args(["ls", "--json"]);
36+
cmd4.assert()
37+
.success()
38+
.stdout(predicate::str::contains("\"name\": \"4.2"));
39+
40+
let mut cmd5 = Command::cargo_bin("rig")?;
41+
cmd5.args(["add", "devel"]);
42+
cmd5.assert()
43+
.success();
44+
45+
let mut cmd6 = Command::cargo_bin("rig")?;
46+
cmd6.args(["ls", "--json"]);
47+
cmd6.assert()
48+
.success()
49+
.stdout(predicate::str::contains("\"aliases\": [\"devel\"],"));
50+
51+
Ok(())
52+
}

tests/rig-system.rs

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
use assert_cmd::prelude::*; // Add methods on commands
2+
use predicates::prelude::*; // Used for writing assertions
3+
use std::process::Command; // Run programs
4+
5+
#[test]
6+
#[cfg(target_os = "macos")]
7+
fn rig_system_make_links() -> Result<(), Box<dyn std::error::Error>> {
8+
let mut cmd = Command::cargo_bin("rig")?;
9+
cmd.args(["system", "make-links"]);
10+
cmd.assert()
11+
.success();
12+
13+
let mut cmd2 = Command::new("R-4.1");
14+
cmd2.args(["-q", "-s", "-e", "cat(as.character(getRversion()))"]);
15+
cmd2.assert()
16+
.success()
17+
.stdout(predicate::str::is_match("^4[.]1[.][0-9]$").unwrap());
18+
19+
let mut cmd2 = Command::new("R-4.2");
20+
cmd2.args(["-q", "-s", "-e", "cat(as.character(getRversion()))"]);
21+
cmd2.assert()
22+
.success()
23+
.stdout(predicate::str::is_match("^4[.]2[.][0-9]$").unwrap());
24+
Ok(())
25+
}

0 commit comments

Comments
 (0)