aboutsummaryrefslogtreecommitdiff
path: root/src/command
diff options
context:
space:
mode:
Diffstat (limited to 'src/command')
-rw-r--r--src/command/generate.rs73
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",