diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2019-10-20 19:19:16 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2019-11-03 11:30:33 +0100 |
commit | a8107ae6e07338fd829b89cf998ab3056559e6fe (patch) | |
tree | 297acb0ca748136fe7afbfa4d067879b84e7b536 /tests | |
parent | 485ad3815f20184b59a1212d0379e998cbdc37c7 (diff) |
Add tests for imag-category
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ui/src/imag_category.rs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/ui/src/imag_category.rs b/tests/ui/src/imag_category.rs index 987eadc5..cc2bfc42 100644 --- a/tests/ui/src/imag_category.rs +++ b/tests/ui/src/imag_category.rs @@ -17,3 +17,54 @@ // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA // +use std::process::Command; + +use assert_fs::fixture::TempDir; + +pub fn binary(tempdir: &TempDir) -> Command { + crate::imag::binary(tempdir, "imag-category") +} + +pub fn call(tmpdir: &TempDir, args: &[&str]) -> Vec<String> { + let mut binary = binary(tmpdir); + binary.stdin(std::process::Stdio::inherit()); + binary.arg("--ignore-ids"); + binary.args(args); + debug!("Command = {:?}", binary); + crate::imag::stdout_of_command(binary) +} + +#[test] +fn test_new_entry_has_no_category() { + crate::setup_logging(); + let imag_home = crate::imag::make_temphome(); + crate::imag_init::call(&imag_home); + crate::imag_create::call(&imag_home, &["test"]); + + let (assert, stderr_output) = { + let mut binary = binary(&imag_home); + binary.stdin(std::process::Stdio::inherit()); + binary.args(&["--ignore-ids", "get", "test"]); + crate::imag::stderr_of_command(&mut binary) + }; + + assert.failure(); + assert!(stderr_output.iter().any(|substr| substr.contains("Category name missing"))); +} + +#[test] +fn test_after_setting_a_new_category_there_is_a_category() { + crate::setup_logging(); + let imag_home = crate::imag::make_temphome(); + crate::imag_init::call(&imag_home); + crate::imag_create::call(&imag_home, &["test"]); + + let _ = call(&imag_home, &["create-category", "cat"]); + let _ = call(&imag_home, &["set", "cat", "test"]); + let output = call(&imag_home, &["get", "test"]); + debug!("output = {:?}", output); + assert!(!output.is_empty()); + assert_eq!(output.len(), 1); + assert_eq!(output[0], "cat"); +} + |