Add test for testing listing all entries with/out a certain tag

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
This commit is contained in:
Matthias Beyer 2019-11-11 19:47:35 +01:00
parent c5f0dc7b14
commit 734f889cdf

View file

@ -34,6 +34,14 @@ pub fn call(tmpdir: &TempDir, args: &[&str]) -> Vec<String> {
crate::imag::stdout_of_command(binary) 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] #[test]
fn test_new_entry_has_no_tags() { fn test_new_entry_has_no_tags() {
crate::setup_logging(); crate::setup_logging();
@ -94,3 +102,43 @@ fn test_adding_twice_does_not_add_twice() {
assert_eq!(output[0], "tag"); 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")));
}