From 0c685fde738736ec8476c13e8f22ab1a55226206 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sun, 20 Oct 2019 18:41:15 +0200 Subject: [PATCH] Add imag-tag tests Signed-off-by: Matthias Beyer --- tests/ui/src/imag_tag.rs | 77 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/tests/ui/src/imag_tag.rs b/tests/ui/src/imag_tag.rs index 987eadc5..352dcf25 100644 --- a/tests/ui/src/imag_tag.rs +++ b/tests/ui/src/imag_tag.rs @@ -17,3 +17,80 @@ // 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-tag") +} + +pub fn call(tmpdir: &TempDir, args: &[&str]) -> Vec { + 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_tags() { + crate::setup_logging(); + let imag_home = crate::imag::make_temphome(); + crate::imag_init::call(&imag_home); + crate::imag_create::call(&imag_home, &["test"]); + + let output = call(&imag_home, &["test", "list", "--linewise"]); + debug!("output = {:?}", output); + assert!(output.is_empty()); +} + +#[test] +fn test_after_adding_tag_there_is_tag() { + 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, &["test", "add", "tag"]); + + let output = call(&imag_home, &["test", "list", "--linewise"]); + debug!("output = {:?}", output); + + assert!(!output.is_empty()); + assert_eq!(output.len(), 1); + assert_eq!(output[0], "tag"); +} + +#[test] +fn test_after_adding_and_removing_there_is_no_tag() { + 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, &["test", "add", "tag"]); + let _ = call(&imag_home, &["test", "remove", "tag"]); + + let output = call(&imag_home, &["test", "list", "--linewise"]); + debug!("output = {:?}", output); + + assert!(output.is_empty()); +} + +#[test] +fn test_adding_twice_does_not_add_twice() { + 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, &["test", "add", "tag"]); + let _ = call(&imag_home, &["test", "add", "tag"]); + + let output = call(&imag_home, &["test", "list", "--linewise"]); + debug!("output = {:?}", output); + + assert!(!output.is_empty()); + assert_eq!(output.len(), 1); + assert_eq!(output[0], "tag"); +} +