extern crate chrono;
extern crate tempfile;
extern crate uuid;
use uuid::Uuid;
use std::{env, fs};
#[test]
fn test_build() {
let uuid = Uuid::new_v4().to_string();
let temp_dir = tempfile::tempdir().unwrap();
let project_dir = temp_dir.path().join(&uuid);
fs::create_dir(&project_dir).unwrap();
fs::create_dir(&project_dir.join("css")).unwrap();
fs::create_dir(&project_dir.join("drafts")).unwrap();
fs::create_dir(&project_dir.join("js")).unwrap();
fs::create_dir(&project_dir.join("pages")).unwrap();
fs::create_dir(&project_dir.join("posts")).unwrap();
fs::create_dir(&project_dir.join("public")).unwrap();
fs::create_dir(&project_dir.join("public").join("posts")).unwrap();
fs::create_dir(&project_dir.join("templates")).unwrap();
fs::write(
project_dir.join("css").join("style.css"),
"body { background: blue; }",
)
.unwrap();
fs::write(
project_dir.join("js").join("index.js"),
"window.onload = function () { alert() }",
)
.unwrap();
fs::write(
project_dir.join("templates").join("layout.html"),
"
First pag\
e
This is the first page
It has multiple paragra\
phs
",
fs::read_to_string(
project_dir
.join("public")
.join("first-page")
.join("index.html")
)
.unwrap()
.replace("\n", ""),
);
assert_eq!(
"body { background: blue; }",
fs::read_to_string(project_dir.join("public").join("css").join("style.css")).unwrap()
);
assert_eq!(
"window.onload = function () { alert() }",
fs::read_to_string(project_dir.join("public").join("js").join("index.js")).unwrap()
);
}
#[test]
fn test_build_drafts() {
let uuid = Uuid::new_v4().to_string();
let temp_dir = tempfile::tempdir().unwrap();
let project_dir = temp_dir.path().join(&uuid);
fs::create_dir(&project_dir).unwrap();
env::set_current_dir(&project_dir).unwrap();
fs::create_dir(&project_dir.join("css")).unwrap();
fs::create_dir(&project_dir.join("drafts")).unwrap();
fs::create_dir(&project_dir.join("js")).unwrap();
fs::create_dir(&project_dir.join("pages")).unwrap();
fs::create_dir(&project_dir.join("posts")).unwrap();
fs::create_dir(&project_dir.join("public")).unwrap();
fs::create_dir(&project_dir.join("public").join("posts")).unwrap();
fs::create_dir(&project_dir.join("templates")).unwrap();
fs::write(
project_dir.join("css").join("style.css"),
"body { background: blue; }",
)
.unwrap();
fs::write(
project_dir.join("js").join("index.js"),
"window.onload = function () { alert() }",
)
.unwrap();
fs::write(
project_dir.join("templates").join("layout.html"),
"