use proptest::prelude::*;
mod common;
use common::subcommands::*;
use crate::common::common_cmd;
#[test]
fn cli_validate_invalid_input() {
let assert = common_cmd().arg(COMMAND_GENERATE).arg("-100").assert();
assert
.append_context(COMMAND_GENERATE, "1 bad integer args")
.failure();
}
#[test]
fn cli_validate_basic_cases() {
let assert = common_cmd().arg(COMMAND_GENERATE).arg("10").assert();
assert
.append_context(COMMAND_GENERATE, "1 valid semver arg")
.success();
let assert = common_cmd().arg(COMMAND_GENERATE).arg("10").assert();
assert
.append_context(COMMAND_GENERATE, "1 valid semver arg")
.success();
}
proptest! {
#![proptest_config(ProptestConfig {
// Setting both fork and timeout is redundant since timeout implies
// fork, but both are shown for clarity.
fork: true,
// timeout: 10000,
cases: 256,
.. ProptestConfig::default()
})]
#[test]
fn prop_generate_small(count in 0u16..10) {
let assert = common_cmd().arg(COMMAND_GENERATE).arg("-s").arg(count.to_string()).assert();
assert.append_context(COMMAND_GENERATE, "property testing").success();
}
#[test]
fn prop_generate_regex(count in 0u16..10) {
let assert = common_cmd().arg(COMMAND_GENERATE).arg(count.to_string()).assert();
assert.append_context(COMMAND_GENERATE, "property testing").success();
}
}