diff options
| -rw-r--r-- | nitrocli/src/args.rs | 2 | ||||
| -rw-r--r-- | nitrocli/src/tests/config.rs | 17 | 
2 files changed, 18 insertions, 1 deletions
| diff --git a/nitrocli/src/args.rs b/nitrocli/src/args.rs index 91bddc5..57e9743 100644 --- a/nitrocli/src/args.rs +++ b/nitrocli/src/args.rs @@ -172,7 +172,7 @@ struct ConfigSetArgs {    #[structopt(short = "o", long)]    otp_pin: bool,    /// Allows one-time password generation without PIN -  #[structopt(short = "O", long, conflicts_with("otp_pin"))] +  #[structopt(short = "O", long, conflicts_with("otp-pin"))]    no_otp_pin: bool,  } diff --git a/nitrocli/src/tests/config.rs b/nitrocli/src/tests/config.rs index 728fdbd..fa311d5 100644 --- a/nitrocli/src/tests/config.rs +++ b/nitrocli/src/tests/config.rs @@ -19,6 +19,23 @@  use super::*; +#[test] +fn mutually_exclusive_set_options() { +  fn test(option1: &str, option2: &str) { +    let (rc, out, err) = Nitrocli::new().run(&["config", "set", option1, option2]); + +    assert_ne!(rc, 0); +    assert_eq!(out, b""); + +    let err = String::from_utf8(err).unwrap(); +    assert!(err.contains("cannot be used with"), err); +  } + +  test("-c", "-C"); +  test("-o", "-O"); +  test("-s", "-S"); +} +  #[test_device]  fn get(model: nitrokey::Model) -> crate::Result<()> {    let re = regex::Regex::new( | 
