diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2019-10-20 18:41:15 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2019-11-03 11:30:33 +0100 |
commit | 0c685fde738736ec8476c13e8f22ab1a55226206 (patch) | |
tree | f345900e3d0cc993df0da95c8fef2d54d92446e2 /tests | |
parent | f7bc7d0834134bb60927e3cf0a4315227fb96dba (diff) |
Add imag-tag tests
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ui/src/imag_tag.rs | 77 |
1 files changed, 77 insertions, 0 deletions
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<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_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"); +} + |