diff --git a/tests/rendered_output.rs b/tests/rendered_output.rs index cef61ac9..9f026839 100644 --- a/tests/rendered_output.rs +++ b/tests/rendered_output.rs @@ -357,22 +357,6 @@ fn failure_on_missing_theme_directory() { let md = MDBook::load(temp.path()).unwrap(); let got = md.build(); assert!(got.is_ok()); - - // 3. Pointing to a non-existent directory should fail - let temp = DummyBook::new().build().unwrap(); - let book_toml = r#" - [book] - title = "implicit" - src = "src" - - [output.html] - theme = "./non-existent-directory" - "#; - - write_file(temp.path(), "book.toml", book_toml.as_bytes()).unwrap(); - let md = MDBook::load(temp.path()).unwrap(); - let got = md.build(); - assert!(got.is_err()); } #[test] diff --git a/tests/testsuite/main.rs b/tests/testsuite/main.rs index e622fe0f..162f850a 100644 --- a/tests/testsuite/main.rs +++ b/tests/testsuite/main.rs @@ -18,6 +18,7 @@ mod rendering; #[cfg(feature = "search")] mod search; mod test; +mod theme; mod prelude { pub use crate::book_test::BookTest; diff --git a/tests/testsuite/theme.rs b/tests/testsuite/theme.rs new file mode 100644 index 00000000..e403b6c4 --- /dev/null +++ b/tests/testsuite/theme.rs @@ -0,0 +1,19 @@ +//! Tests for theme handling. + +use crate::prelude::*; + +// Checks what happens if the theme directory is missing. +#[test] +fn missing_theme() { + BookTest::from_dir("theme/missing_theme") + .run("build", |cmd| { +cmd.expect_failure() + .expect_stderr(str![[r#" +[TIMESTAMP] [INFO] (mdbook::book): Book building has started +[TIMESTAMP] [INFO] (mdbook::book): Running the html backend +[TIMESTAMP] [ERROR] (mdbook::utils): Error: Rendering failed +[TIMESTAMP] [ERROR] (mdbook::utils): [TAB]Caused By: theme dir [ROOT]/./non-existent-directory does not exist + +"#]]); + }); +} diff --git a/tests/testsuite/theme/missing_theme/book.toml b/tests/testsuite/theme/missing_theme/book.toml new file mode 100644 index 00000000..367db850 --- /dev/null +++ b/tests/testsuite/theme/missing_theme/book.toml @@ -0,0 +1,5 @@ +[book] +title = "missing_theme" + +[output.html] +theme = "./non-existent-directory" diff --git a/tests/testsuite/theme/missing_theme/src/SUMMARY.md b/tests/testsuite/theme/missing_theme/src/SUMMARY.md new file mode 100644 index 00000000..7390c828 --- /dev/null +++ b/tests/testsuite/theme/missing_theme/src/SUMMARY.md @@ -0,0 +1,3 @@ +# Summary + +- [Chapter 1](./chapter_1.md) diff --git a/tests/testsuite/theme/missing_theme/src/chapter_1.md b/tests/testsuite/theme/missing_theme/src/chapter_1.md new file mode 100644 index 00000000..b743fda3 --- /dev/null +++ b/tests/testsuite/theme/missing_theme/src/chapter_1.md @@ -0,0 +1 @@ +# Chapter 1