use std::fs::create_dir_all; use std::process::Command; use test_utilities::*; #[test] fn test_basic_command() { let test_dir = setup_test_dir(); let config_dir = test_dir.join("config"); let data_dir = test_dir.join("data"); let output_dir = test_dir.join("output"); create_dir_all(&config_dir).expect("Could not create config directory"); create_dir_all(&data_dir).expect("Could not create data directory"); create_dir_all(&output_dir).expect("Could not create output directory"); // Create test input files create_test_file( &test_dir.join("my_post.gmi"), "\ # This is my post. ## I hope you like it. ", ); // Run the program from the test directory let status = Command::new(env!("CARGO_BIN_EXE_blog")) .arg("add") .arg("my_post.gmi") .current_dir(&test_dir) .env("BLOG_CONFIG_DIRECTORY", &config_dir) .env("BLOG_DATA_DIRECTORY", &data_dir) .env("BLOG_OUTPUT_DIRECTORY", &output_dir) .status() .expect("Failed to execute add command"); assert!(status.success()); assert!(data_dir.join("blog/posts/0/my_post.gmi").exists()); assert!(data_dir.join("blog/archive").exists()); let status = Command::new(env!("CARGO_BIN_EXE_blog")) .arg("generate") .current_dir(&test_dir) .env("BLOG_CONFIG_DIRECTORY", &config_dir) .env("BLOG_DATA_DIRECTORY", &data_dir) .env("BLOG_OUTPUT_DIRECTORY", &output_dir) .status() .expect("Failed to execute generate command"); assert!(status.success()); assert!(output_dir.join("blog/blog/index.html").exists()); assert_file_contains( &output_dir.join("blog/blog/index.html"), "