summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2019-11-11 19:47:35 +0100
committerMatthias Beyer <mail@beyermatthias.de>2019-11-13 19:46:10 +0100
commit734f889cdf382b1a6dadc81b255a6deba64cbffd (patch)
tree4e6561e69a07c40a6c0ba3520e4c15f6cc6d85e7
parentc5f0dc7b14f020a818eb0575403141399c62d2aa (diff)
Add test for testing listing all entries with/out a certain tag
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--tests/ui/src/imag_tag.rs48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/ui/src/imag_tag.rs b/tests/ui/src/imag_tag.rs
index 352dcf25..77784a1e 100644
--- a/tests/ui/src/imag_tag.rs
+++ b/tests/ui/src/imag_tag.rs
@@ -34,6 +34,14 @@ pub fn call(tmpdir: &TempDir, args: &[&str]) -> Vec<String> {
crate::imag::stdout_of_command(binary)
}
+pub fn call_give_ids(tmpdir: &TempDir, args: &[&str]) -> Vec<String> {
+ let mut binary = binary(tmpdir);
+ binary.stdin(std::process::Stdio::inherit());
+ binary.args(args);
+ debug!("Command = {:?}", binary);
+ crate::imag::stdout_of_command(binary)
+}
+
#[test]
fn test_new_entry_has_no_tags() {
crate::setup_logging();
@@ -94,3 +102,43 @@ fn test_adding_twice_does_not_add_twice() {
assert_eq!(output[0], "tag");
}
+#[test]
+fn test_listing_entries_with_certain_tag() {
+ crate::setup_logging();
+ let imag_home = crate::imag::make_temphome();
+ crate::imag_init::call(&imag_home);
+ crate::imag_create::call(&imag_home, &["test1", "test2", "test3"]);
+ let _ = call(&imag_home, &["test1", "add", "tag1"]);
+ let _ = call(&imag_home, &["test2", "add", "tag2"]);
+ let _ = call(&imag_home, &["test3", "add", "tag3"]);
+
+ let output = call_give_ids(&imag_home, &["present", "tag1"]);
+ debug!("output = {:?}", output);
+
+ assert!(!output.is_empty());
+ assert_eq!(output.len(), 1);
+ assert!(output[0].contains("test1"));
+ assert!(output.iter().all(|s| !s.contains("test2")));
+ assert!(output.iter().all(|s| !s.contains("test3")));
+}
+
+#[test]
+fn test_listing_entries_without_certain_tag() {
+ crate::setup_logging();
+ let imag_home = crate::imag::make_temphome();
+ crate::imag_init::call(&imag_home);
+ crate::imag_create::call(&imag_home, &["test1", "test2", "test3"]);
+ let _ = call(&imag_home, &["test1", "add", "tag1"]);
+ let _ = call(&imag_home, &["test2", "add", "tag2"]);
+ let _ = call(&imag_home, &["test3", "add", "tag3"]);
+
+ let output = call_give_ids(&imag_home, &["missing", "tag1"]);
+ debug!("output = {:?}", output);
+
+ assert!(!output.is_empty());
+ assert_eq!(output.len(), 2);
+ assert!(output.iter().any(|s| s.contains("test2")));
+ assert!(output.iter().any(|s| s.contains("test3")));
+ assert!(output.iter().all(|s| !s.contains("test1")));
+}
+