totpc 1.1.0

Desktop CLI tool to manage and compute TOTPs
Documentation
const BIN: &str = env!("CARGO_PKG_NAME");

use assert_cmd::prelude::*;
use std::process::Command;
use totpc::{ErrorMessage, COMMAND_COMPUTE, COMMAND_DELETE, COMMAND_INIT, COMMAND_SAVE};

#[test]
fn init_without_id_fails() {
    let mut command = Command::cargo_bin(BIN).unwrap();
    let command = command.arg(COMMAND_INIT);

    command.assert().code(1);
    let error = command.unwrap_err();
    assert!(error.to_string().contains("gpg id"));
}

#[test]
fn save_without_identifier_fails() {
    let mut command = Command::cargo_bin(BIN).unwrap();
    let command = command.arg(COMMAND_SAVE);

    command.assert().code(1);
    let error = command.unwrap_err();
    assert!(error
        .to_string()
        .contains(&ErrorMessage::MissingIdentifier(COMMAND_SAVE).to_string()));
}

#[test]
fn read_without_identifier_fails() {
    let mut command = Command::cargo_bin(BIN).unwrap();
    let command = command.arg(COMMAND_DELETE);

    command.assert().code(1);
    let error = command.unwrap_err();
    assert!(error
        .to_string()
        .contains(&ErrorMessage::MissingIdentifier(COMMAND_DELETE).to_string()));
}

#[test]
fn compute_without_identifier_fails() {
    let mut command = Command::cargo_bin(BIN).unwrap();
    let command = command.arg(COMMAND_COMPUTE);

    command.assert().code(1);
    let error = command.unwrap_err();
    assert!(error
        .to_string()
        .contains(&ErrorMessage::MissingIdentifier(COMMAND_COMPUTE).to_string()));
}