use std::ffi::OsString; use std::path::Path; use ko::create_middleware; #[test] fn it_works() { let result = ko::run(vec![ create_middleware(|files| { let file = &mut files[0]; file.content = "test hello".to_string(); }), create_middleware(|files| { let file = &mut files[0]; file.content = "override".to_string(); }), ], Some("fixtures/example"), None); if let Ok(r) = result { assert_eq!(r[0].content, "override".to_string()); } } #[test] fn custom_source() { let result = ko::run(vec![ create_middleware(|files| { let file = &mut files[0]; file.content = "another test".to_string(); }), ], Some("fixtures/custom_source"), None); if let Ok(r) = result { assert_eq!(r[0].name, OsString::from("a.md")); } } #[test] fn custom_destination() { let result = ko::run(vec![ create_middleware(|files| { let file = &mut files[0]; file.content = "a third test".to_string(); }), ], Some("fixtures/custom_destination"), Some("_site_2")); if let Ok(r) = result { assert_eq!(r[0].content, "a third test".to_string()); let path = Path::new("_site_2/mycoolfile.txt"); assert_eq!(path.is_file(), true); } } #[test] fn custom_metadata() { let result = ko::run(vec![ create_middleware(|files| { let file = &mut files[0]; file.metadata.insert("test", "the fourth test".to_string()); }), create_middleware(|files| { let file = &mut files[0]; let content = file.metadata.get("test").unwrap(); file.content = content.to_owned(); }) ], Some("fixtures/example"), None); if let Ok(r) = result { assert_eq!(r[0].content, "the fourth test".to_string()); } } #[test] fn ignore_files() { let result = ko::run(vec![ ko::ignore(vec![ "*.txt".to_owned(), ]), ], Some("fixtures/ignore"), None); if let Ok(r) = result { assert_eq!(r.len(), 1); assert_eq!(r[0].name, OsString::from("test.md")); } }