extern crate mdbook; extern crate tempdir; use std::fs::File; use std::io::Write; use mdbook::MDBook; use tempdir::TempDir; // Tests that config values unspecified in the configuration file do not // overwrite // values specified earlier. #[test] #[ignore] fn do_not_overwrite_unspecified_config_values() { // FIXME: This entire test needs to be rewritten to reflect the new builder // semantics // This is because the `MDBook` given to you by the builder isn't mutable // so changing config settings after it's created may or may not be desired let dir = TempDir::new("mdbook").expect("Could not create a temp dir"); let book = MDBook::init(dir.path()) .unwrap() .with_source("bar") .with_destination("baz") .with_mathjax_support(true); assert_eq!(book.get_root(), dir.path()); assert_eq!(book.get_source(), dir.path().join("bar")); assert_eq!(book.get_destination(), dir.path().join("baz")); // // Test when trying to read a config file that does not exist // let book = book.expect("Error reading the config file"); // assert_eq!(book.get_root(), dir.path()); // assert_eq!(book.get_source(), dir.path().join("bar")); // assert_eq!(book.get_destination(), dir.path().join("baz")); // assert_eq!(book.get_mathjax_support(), true); // // Try with a partial config file // let file_path = dir.path().join("book.toml"); // let mut f = File::create(file_path).expect("Could not create config file"); // f.write_all(br#"source = "barbaz""#).expect( // "Could not write to config file", // ); // f.sync_all().expect("Could not sync the file"); // let book = book.read_config().expect("Error reading the config file"); // assert_eq!(book.get_root(), dir.path()); // assert_eq!(book.get_source(), dir.path().join("barbaz")); // assert_eq!(book.get_destination(), dir.path().join("baz")); // assert_eq!(book.get_mathjax_support(), true); }