73 lines
2.1 KiB
Rust
73 lines
2.1 KiB
Rust
use super::*;
|
|
|
|
fn parse(args: &[&str]) -> Result<Option<Options>, String> {
|
|
parse_options(args.iter().map(std::ffi::OsString::from))
|
|
}
|
|
|
|
#[test]
|
|
fn review_commands_preserve_filenames_and_validate_arguments() {
|
|
assert_eq!(
|
|
parse(&["review"]).unwrap().unwrap().file,
|
|
Some("review".into())
|
|
);
|
|
assert_eq!(
|
|
parse(&["--", "--review"]).unwrap().unwrap().file,
|
|
Some("--review".into())
|
|
);
|
|
assert!(
|
|
parse(&["--no-config", "--review", "list", "--repo", ".", "--json"])
|
|
.unwrap()
|
|
.unwrap()
|
|
.review
|
|
.is_some()
|
|
);
|
|
assert!(
|
|
parse(&["--review", "show", "1", "--all", "--no-config"])
|
|
.unwrap()
|
|
.unwrap()
|
|
.review
|
|
.is_some()
|
|
);
|
|
assert!(
|
|
parse(&[
|
|
"--review",
|
|
"delete",
|
|
"1",
|
|
"2",
|
|
"--repo",
|
|
".",
|
|
"--json",
|
|
"--no-config"
|
|
])
|
|
.unwrap()
|
|
.unwrap()
|
|
.review
|
|
.is_some()
|
|
);
|
|
for args in [
|
|
vec!["--review"],
|
|
vec!["--review", "show"],
|
|
vec!["--review", "show", "0"],
|
|
vec!["--review", "show", "-1"],
|
|
vec!["--review", "show", "abc"],
|
|
vec!["--review", "delete"],
|
|
vec!["--review", "delete", "1"],
|
|
vec!["--review", "delete", "0", "1"],
|
|
vec!["--review", "delete", "9223372036854775808", "1"],
|
|
vec!["--review", "delete", "1", "0"],
|
|
vec!["--review", "delete", "1", "-1"],
|
|
vec!["--review", "delete", "1", "abc"],
|
|
vec!["--review", "delete", "1", "18446744073709551616"],
|
|
vec!["--review", "delete", "1", "2", "--all"],
|
|
vec!["--review", "delete", "1", "2", "3"],
|
|
vec!["--review", "list", "--all"],
|
|
vec!["--review", "list", "--repo"],
|
|
vec!["--review", "list", "--repo", ".", "--repo", "."],
|
|
vec!["--review", "list", "extra"],
|
|
vec!["--review", "list", "--", "extra"],
|
|
vec!["--review", "list", "--config", "x", "--no-config"],
|
|
] {
|
|
assert!(parse(&args).is_err(), "{args:?}");
|
|
}
|
|
}
|