summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2019-10-20 18:41:15 +0200
committerMatthias Beyer <mail@beyermatthias.de>2019-11-03 11:30:33 +0100
commit0c685fde738736ec8476c13e8f22ab1a55226206 (patch)
treef345900e3d0cc993df0da95c8fef2d54d92446e2 /tests
parentf7bc7d0834134bb60927e3cf0a4315227fb96dba (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.rs77
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");
+}
+