diff options
Diffstat (limited to 'src/command')
| -rw-r--r-- | src/command/generate.rs | 73 |
1 files changed, 54 insertions, 19 deletions
diff --git a/src/command/generate.rs b/src/command/generate.rs index 4add259..ac9849e 100644 --- a/src/command/generate.rs +++ b/src/command/generate.rs @@ -190,25 +190,6 @@ mod tests { .write_all(&invalid_bytes) .expect("Could not write bad bytes to bad file."); - // Create the archive posts - create_dir_all(archive_dir.join("1736035200000")) - .expect("Could not create post 0 directory"); - create_test_file( - &archive_dir.join("1736035200000/metadata.json"), - "{ \"id\": \"1736035200000\", \"created_on\": 1736035200000 }", - ); - create_test_file( - &archive_dir.join("1736035200000/the-latest.gmi"), - "The latest is here.", - ); - create_dir_all(archive_dir.join("1736045200000")) - .expect("Could not create post 1 archive directory"); - create_test_file( - &archive_dir.join("1736045200000/metadata.json"), - "{ \"id\": \"1736045200000\", \"created_on\": 1736045200000 }", - ); - create_test_file(&posts_dir.join("1/the-latest.gmi"), "Often forgotten."); - let mut configuration = Configuration::new(); configuration.archive_directory = archive_dir.clone(); configuration.static_directory = static_dir.clone(); @@ -241,6 +222,60 @@ mod tests { 1736045200000 ", ); + + cleanup_test_dir(&test_dir); + } + + #[test] + fn test_generate_command_archive() { + let generate = Generate::new(); + + let test_dir = setup_test_dir(); + let static_dir = test_dir.join("static"); + let template_dir = test_dir.join("templates"); + let blog_output_dir = test_dir.join("blog_output"); + let archive_output_dir = test_dir.join("archive_output"); + let posts_dir = test_dir.join("posts"); + let archive_dir = test_dir.join("archive"); + + create_dir_all(&static_dir).expect("Could not create static directory"); + create_dir_all(&template_dir).expect("Could not create template directory"); + create_dir_all(&blog_output_dir).expect("Could not create blog output directory"); + create_dir_all(&archive_output_dir).expect("Could not create archive output directory"); + create_dir_all(&posts_dir).expect("Could not create output directory"); + create_test_file(&static_dir.join("file.txt"), "wow"); + + // Create the archive posts + create_dir_all(archive_dir.join("1736035200000")) + .expect("Could not create post 0 directory"); + create_test_file( + &archive_dir.join("1736035200000/metadata.json"), + "{ \"id\": \"1736035200000\", \"created_on\": 1736035200000 }", + ); + create_test_file( + &archive_dir.join("1736035200000/the-latest.gmi"), + "The latest is here.", + ); + create_dir_all(archive_dir.join("1736045200000")) + .expect("Could not create post 1 archive directory"); + create_test_file( + &archive_dir.join("1736045200000/metadata.json"), + "{ \"id\": \"1736045200000\", \"created_on\": 1736045200000 }", + ); + + let mut configuration = Configuration::new(); + configuration.archive_directory = archive_dir.clone(); + configuration.static_directory = static_dir.clone(); + configuration.templates_directory = template_dir.clone(); + configuration.blog_output_directory = blog_output_dir.clone(); + configuration.archive_output_directory = archive_output_dir.clone(); + configuration.posts_directory = posts_dir.clone(); + configuration.max_posts = 4; + + generate + .execute(None, &configuration, "generate") + .expect("Could not generate"); + assert_file_contains( &archive_output_dir.join("index.gmi"), "\n=> ./1736035200000/the-latest.gmi 2025-01-05 the latest", |