]> git.r.bdr.sh - rbdr/blog/blame - src/generator/static_files.rs
Address more of the formatter comments
[rbdr/blog] / src / generator / static_files.rs
CommitLineData
b17907fa 1use crate::template::Context;
6352ebb0 2use crate::utils::recursively_copy;
d7fef30a 3use std::io::Result;
b17907fa 4use std::path::Path;
29982470 5
b17907fa 6pub fn generate(source: &Path, _: &Path, target: &Path, _: &Context) -> Result<()> {
29982470 7 if source.exists() {
d7fef30a 8 return recursively_copy(source, target);
29982470
RBR
9 }
10 Ok(())
11}
795d79af
RBR
12
13#[cfg(test)]
14mod tests {
15 use std::collections::HashMap;
16 use std::fs::create_dir_all;
17
18 use super::*;
19
20 use test_utilities::*;
21
22 #[test]
23 fn test_copies_files() {
24 let test_dir = setup_test_dir();
25 let static_dir = test_dir.join("static");
26 let template_dir = test_dir.join("templates");
27 let output_dir = test_dir.join("output");
28
29 create_dir_all(&static_dir).expect("Could not create static directory");
30 create_dir_all(&output_dir).expect("Could not create output directory");
31 create_test_file(&static_dir.join("test.jpg"), "Cool hat");
32
33 let context = HashMap::new();
34
35 generate(&static_dir, &template_dir, &output_dir, &context).expect("Generate failed");
36
37 assert_file_contents(&output_dir.join("test.jpg"), "Cool hat");
38 }
39
40 #[test]
41 fn test_creates_directories_if_they_do_not_exist() {
42 let test_dir = setup_test_dir();
43 let static_dir = test_dir.join("static");
44 let template_dir = test_dir.join("templates");
45 let output_dir = test_dir.join("output");
46
47 create_dir_all(&static_dir).expect("Could not create static directory");
9c537e47 48 create_dir_all(static_dir.join("nested")).expect("Could not create output directory");
795d79af
RBR
49 create_test_file(&static_dir.join("nested/test.mov"), "Cool hats, multiple.");
50
51 let context = HashMap::new();
52
53 generate(&static_dir, &template_dir, &output_dir, &context).expect("Generate failed");
54
55 assert_file_contents(&output_dir.join("nested/test.mov"), "Cool hats, multiple.");
56 }
57
58 #[test]
59 fn test_it_does_not_fail_if_source_directory_does_not_exist() {
60 let test_dir = setup_test_dir();
61 let static_dir = test_dir.join("static");
62 let template_dir = test_dir.join("templates");
63 let output_dir = test_dir.join("output");
64
65 let context = HashMap::new();
66
67 let result = generate(&static_dir, &template_dir, &output_dir, &context);
68
69 assert!(result.is_ok());
70 }
71}