]> git.r.bdr.sh - rbdr/blog/blobdiff - src/archiver/raw.rs
Address more of the formatter comments
[rbdr/blog] / src / archiver / raw.rs
index c3dc1cf098bd2de89619dc8111a1fa36aa437e5f..5cac709afa0d1ebc9fb2807dbda73e4bcb4de4be 100644 (file)
@@ -1,16 +1,49 @@
-use crate::template::TemplateContext;
+use crate::template::Context;
 use crate::utils::recursively_copy;
 use std::io::Result;
 use std::path::Path;
 
 use crate::utils::recursively_copy;
 use std::io::Result;
 use std::path::Path;
 
-pub fn archive(
-    archive_directory: &Path,
-    _: &Path,
-    target: &Path,
-    _: &TemplateContext,
-) -> Result<()> {
+pub fn archive(archive_directory: &Path, _: &Path, target: &Path, _: &Context) -> Result<()> {
     if archive_directory.exists() {
         return recursively_copy(archive_directory, target);
     }
     Ok(())
 }
     if archive_directory.exists() {
         return recursively_copy(archive_directory, target);
     }
     Ok(())
 }
+
+#[cfg(test)]
+mod tests {
+    use std::collections::HashMap;
+    use std::fs::create_dir_all;
+
+    use super::*;
+
+    use test_utilities::*;
+
+    #[test]
+    fn test_copies_files() {
+        let test_dir = setup_test_dir();
+        let archive_dir = test_dir.join("archive");
+        let output_dir = test_dir.join("output");
+        create_dir_all(&archive_dir).expect("Could not create archive test directory");
+        create_dir_all(&output_dir).expect("Could not create output test directory");
+
+        create_test_file(&archive_dir.join("🤠"), "beep boop boop beep");
+
+        let context: Context = HashMap::new();
+
+        archive(&archive_dir, &test_dir, &output_dir, &context).expect("Archive failed");
+
+        assert_file_contents(&output_dir.join("🤠"), "beep boop boop beep");
+    }
+
+    #[test]
+    fn test_ignores_if_no_archive() {
+        let test_dir = setup_test_dir();
+        let archive_dir = test_dir.join("archive");
+        let output_dir = test_dir.join("output");
+
+        let context: Context = HashMap::new();
+
+        archive(&archive_dir, &test_dir, &output_dir, &context).expect("Archive failed");
+    }
+}