aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2025-04-05 19:08:13 +0200
committerRuben Beltran del Rio <git@r.bdr.sh>2025-04-05 19:08:13 +0200
commit93c6a678b398cdfacb0d18ad499c3321a44ff31f (patch)
tree309f6e21db7a61a713fcc04a6338414c43e74dee /src
parent0846a41c7973e4c28e35ad8e4b3ac28d0e791df8 (diff)
Add tests for new failing cases
Diffstat (limited to 'src')
-rw-r--r--src/file_handler/file_strategies/file.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/file_handler/file_strategies/file.rs b/src/file_handler/file_strategies/file.rs
index 09b94d3..af6bb65 100644
--- a/src/file_handler/file_strategies/file.rs
+++ b/src/file_handler/file_strategies/file.rs
@@ -209,4 +209,37 @@ mod tests {
let copied = fs::read(copied_path).unwrap();
assert_eq!(original, copied);
}
+
+ #[test]
+ fn fails_if_file_is_not_part_of_source() {
+ let test_dir = setup_test_dir();
+ let source_dir = test_dir.join("source");
+ let output_dir = test_dir.join("output");
+ create_dir_all(&source_dir).expect("Could not create source test directory");
+ create_dir_all(&output_dir).expect("Could not create output test directory");
+ create_test_file(&source_dir.join("image.png"), "A fish playing the banjo");
+
+ let file = File {
+ path: output_dir.join("image.png"),
+ file_type: FileType::File,
+ };
+
+ assert!(Strategy::handle(&source_dir, &output_dir, &file).is_err());
+ }
+
+ #[test]
+ fn fails_if_destination_parent_is_not_readable() {
+ let test_dir = setup_test_dir();
+ let source_dir = test_dir.join("source");
+ create_dir_all(&source_dir).expect("Could not create source test directory");
+ create_test_file(&source_dir.join("image.png"), "A fish playing the banjo");
+ let output_dir = Path::new("");
+
+ let file = File {
+ path: source_dir.clone(),
+ file_type: FileType::File,
+ };
+
+ assert!(Strategy::handle(&source_dir, output_dir, &file).is_err());
+ }
}