- mod file_handling_tests {
- use super::*;
-
- #[test]
- fn copies_single_file() {
- let strategy = setup();
- let source = fixtures_dir();
- let output = fixture_path("output");
-
- let file = File {
- path: fixture_path("image.png"),
- file_type: FileType::File,
- };
-
- strategy.handle(&source, &output, &file);
-
- let copied_path = output.join("image.png");
- assert!(copied_path.exists());
-
- // Verify file contents are identical
- let original = fs::read(&file.path).unwrap();
- let copied = fs::read(&copied_path).unwrap();
- assert_eq!(original, copied);
-
- // Cleanup
- let _ = fs::remove_file(copied_path);
- }
-
- #[test]
- fn copies_nested_file() {
- let strategy = setup();
- let source = fixtures_dir();
- let output = fixture_path("output");
-
- let file = File {
- path: fixture_path("assets/style.css"),
- file_type: FileType::File,
- };
-
- strategy.handle(&source, &output, &file);
-
- let copied_path = output.join("assets").join("style.css");
- assert!(copied_path.exists());
-
- // Verify file contents are identical
- let original = fs::read(&file.path).unwrap();
- let copied = fs::read(&copied_path).unwrap();
- assert_eq!(original, copied);
-
- // Cleanup
- let _ = fs::remove_file(copied_path);
- let _ = fs::remove_dir(output.join("assets"));
- }
-
- #[test]
- fn handle_html_copies_file() {
- let strategy = setup();
- let source = fixtures_dir();
- let output = fixture_path("output_html");
-
- let file = File {
- path: fixture_path("image.png"),
- file_type: FileType::File,
- };
-
- strategy.handle_html(&source, &output, &file, "unused layout");
-
- let copied_path = output.join("image.png");
- assert!(copied_path.exists());