use insta_cmd::{assert_cmd_snapshot, get_cargo_bin};
use std::process::Command;
mod common;
use common::subcommands::*;
fn cli() -> Command {
Command::new(get_cargo_bin("sem-tool"))
}
#[test]
fn cli_insta() {
let insta_targets = vec![
vec![COMMAND_FILTER_TEST, ">a.b.c"],
vec![COMMAND_FILTER_TEST, ">1", "x.y.z"],
vec![COMMAND_FILTER_TEST, "2.0.0", ">1"],
vec![COMMAND_FILTER_TEST, ">1", "2.0.0"],
vec![COMMAND_FILTER_TEST, ">1", "0.0.1-rc1.br.0+abc"],
vec![COMMAND_SORT, "0.1.2-rc0"],
vec![
COMMAND_SORT,
"--lexical-sorting",
"--fail-if-potentially-ambiguous",
"0.1.2+bm0",
"0.1.2+bm1",
],
vec![COMMAND_SORT, "--lexical-sorting", "0.1.2+bm0", "0.1.2+bm1"],
vec![COMMAND_SORT, "-r", "0.1.2-rc0", "0.1.2-rc1"],
vec![COMMAND_SORT, "--flatten", "0.1.2-rc0", "0.1.2-rc1"],
vec![COMMAND_SORT, "--lexical-sorting", "0.1.2-rc0", "0.1.2-rc1"],
vec![
COMMAND_SORT,
"--lexical-sorting",
"--flatten",
"0.1.2-rc0",
"0.1.2-rc1",
],
vec![COMMAND_SORT, "-f", ">1", "0.1.2-rc0", "0.1.2-rc1"],
vec![COMMAND_SORT, "-f", ">0", "0.1.2-rc0", "0.1.2-rc1"],
vec![COMMAND_SORT, "-f", ">a", "0.1.2-rc0", "0.1.2-rc1"],
vec![COMMAND_VALIDATE, "a.b.c"],
vec![COMMAND_VALIDATE, "0.1.2-rc.0.a.1.b+a.0.b.1"],
vec![COMMAND_VALIDATE, "-s", "18446744073709551616.0.0"],
vec![COMMAND_VALIDATE, "18446744073709551616.0.0"],
vec![COMMAND_EXPLAIN, "a.b.c"],
vec![COMMAND_EXPLAIN, "0.1.2-rc.0.a.1.b+a.0.b.1"],
vec![COMMAND_EXPLAIN, "0.1.2"],
vec![COMMAND_EXPLAIN, "0.1.2-rc.0.a.1.b"],
vec![COMMAND_EXPLAIN, "0.1.2+a.0.b.1"],
vec![COMMAND_COMPARE, "1.2.3", "4.5.6"],
vec![COMMAND_COMPARE, "-e", "1.2.3", "1.2.3"],
vec![COMMAND_COMPARE, "-e", "1.2.3", "4.5.6"],
vec![COMMAND_COMPARE, "-e", "4.5.6", "1.2.3"],
vec![COMMAND_COMPARE, "-e", "1.2.3+1", "1.2.3+0"],
vec![COMMAND_COMPARE, "-e", "1.2.3+0", "1.2.3+1"],
vec![COMMAND_COMPARE, "-e", "-s", "1.2.3+0", "1.2.3+1"],
vec![COMMAND_COMPARE, "-e", "-s", "1.2.2", "1.2.3+1"],
vec![COMMAND_COMPARE, "-s", "1.2.4+0", "1.2.3+1"],
];
for args in insta_targets {
assert_cmd_snapshot!(cli().args(args));
}
}