Skip to main content

Add a helper function for calling get_output

ID
bab14ff
date
2021-11-27 08:06:25+00:00
author
Alex Chan <alex@alexwlchan.net>
parent
ab68e59
message
Add a helper function for calling get_output
changed files
1 file, 16 additions, 32 deletions

Changed files

src/main.rs (6750) → src/main.rs (6260)

diff --git a/src/main.rs b/src/main.rs
index 37ceff4..109be9b 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -97,6 +97,7 @@ fn main() {
 #[cfg(test)]
 mod tests {
     use std::str;
+    use std::process::Output;
 
     use assert_cmd::assert::OutputAssertExt;
     use assert_cmd::Command;
@@ -106,14 +107,7 @@ mod tests {
 
     #[test]
     fn it_prints_the_color_with_ansi_escape_codes() {
-        let mut cmd = Command::cargo_bin("dominant_colours").unwrap();
-        let output = cmd
-            .args(&["./src/tests/red.png", "--count=1"])
-            .unwrap()
-            .assert()
-            .success()
-            .get_output()
-            .to_owned();
+        let output = get_output(&["./src/tests/red.png", "--count=1"]);
 
         assert_eq!(output.status.code().unwrap(), 0);
 
@@ -129,14 +123,7 @@ mod tests {
 
     #[test]
     fn it_omits_the_escape_codes_with_no_palette() {
-        let mut cmd = Command::cargo_bin("dominant_colours").unwrap();
-        let output = cmd
-            .args(&["./src/tests/red.png", "--count=1"])
-            .unwrap()
-            .assert()
-            .success()
-            .get_output()
-            .to_owned();
+        let output = get_output(&["./src/tests/red.png", "--count=1"]);
 
         assert_eq!(output.status.code().unwrap(), 0);
 
@@ -152,14 +139,7 @@ mod tests {
 
     #[test]
     fn it_defaults_to_five_colours() {
-        let mut cmd = Command::cargo_bin("dominant_colours").unwrap();
-        let output = cmd
-            .args(&["./src/tests/noise.jpg"])
-            .unwrap()
-            .assert()
-            .success()
-            .get_output()
-            .to_owned();
+        let output = get_output(&["./src/tests/noise.jpg"]);
 
         let stdout = str::from_utf8(&output.stdout).unwrap();
         assert_eq!(stdout.matches("\n").count(), 5, "stdout = {:?}", stdout);
@@ -167,14 +147,7 @@ mod tests {
 
     #[test]
     fn it_lets_you_choose_the_count() {
-        let mut cmd = Command::cargo_bin("dominant_colours").unwrap();
-        let output = cmd
-            .args(&["./src/tests/noise.jpg", "--count=8"])
-            .unwrap()
-            .assert()
-            .success()
-            .get_output()
-            .to_owned();
+        let output = get_output(&["./src/tests/noise.jpg", "--count=8"]);
 
         let stdout = str::from_utf8(&output.stdout).unwrap();
         assert_eq!(stdout.matches("\n").count(), 8, "stdout = {:?}", stdout);
@@ -194,4 +167,15 @@ mod tests {
         assert_eq!(str::from_utf8(&output.stdout).unwrap(), "");
         assert_eq!(str::from_utf8(&output.stderr).unwrap(), "error: Invalid value: The argument 'NaN' isn't a valid value\n");
     }
+
+    fn get_output(args: &[&str]) -> Output {
+        let mut cmd = Command::cargo_bin("dominant_colours").unwrap();
+        cmd
+            .args(args)
+            .unwrap()
+            .assert()
+            .success()
+            .get_output()
+            .to_owned()
+    }
 }