From 3706ddc5cc2195917faf2ee16a3c3643737a3203 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Mon, 21 Apr 2025 18:34:40 -0700 Subject: [PATCH] Migrate book_with_a_reserved_filename_does_not_build to BookTest --- tests/rendered_output.rs | 18 ------------------ tests/testsuite/build.rs | 14 ++++++++++++++ .../build/no_reserved_filename/book.toml | 2 ++ .../build/no_reserved_filename/src/SUMMARY.md | 3 +++ .../build/no_reserved_filename/src/print.md | 1 + 5 files changed, 20 insertions(+), 18 deletions(-) create mode 100644 tests/testsuite/build/no_reserved_filename/book.toml create mode 100644 tests/testsuite/build/no_reserved_filename/src/SUMMARY.md create mode 100644 tests/testsuite/build/no_reserved_filename/src/print.md diff --git a/tests/rendered_output.rs b/tests/rendered_output.rs index 49f2c6f4..f648b72d 100644 --- a/tests/rendered_output.rs +++ b/tests/rendered_output.rs @@ -405,24 +405,6 @@ fn example_book_can_build() { md.build().unwrap(); } -#[test] -fn book_with_a_reserved_filename_does_not_build() { - let tmp_dir = TempFileBuilder::new().prefix("mdBook").tempdir().unwrap(); - let src_path = tmp_dir.path().join("src"); - fs::create_dir(&src_path).unwrap(); - - let summary_path = src_path.join("SUMMARY.md"); - let print_path = src_path.join("print.md"); - - fs::File::create(print_path).unwrap(); - let mut summary_file = fs::File::create(summary_path).unwrap(); - writeln!(summary_file, "[print](print.md)").unwrap(); - - let md = MDBook::load(tmp_dir.path()).unwrap(); - let got = md.build(); - assert!(got.is_err()); -} - #[test] fn by_default_mdbook_use_index_preprocessor_to_convert_readme_to_index() { let temp = DummyBook::new().build().unwrap(); diff --git a/tests/testsuite/build.rs b/tests/testsuite/build.rs index 34532d62..f276ab96 100644 --- a/tests/testsuite/build.rs +++ b/tests/testsuite/build.rs @@ -39,3 +39,17 @@ fn create_missing() { test.load_book(); assert!(test.dir.join("src/chapter_1.md").exists()); } + +// Checks that it fails if the summary has a reserved filename. +#[test] +fn no_reserved_filename() { + BookTest::from_dir("build/no_reserved_filename").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: print.md is reserved for internal use + +"#]]); + }); +} diff --git a/tests/testsuite/build/no_reserved_filename/book.toml b/tests/testsuite/build/no_reserved_filename/book.toml new file mode 100644 index 00000000..58c1144e --- /dev/null +++ b/tests/testsuite/build/no_reserved_filename/book.toml @@ -0,0 +1,2 @@ +[book] +title = "no_reserved_filename" diff --git a/tests/testsuite/build/no_reserved_filename/src/SUMMARY.md b/tests/testsuite/build/no_reserved_filename/src/SUMMARY.md new file mode 100644 index 00000000..2c8b949e --- /dev/null +++ b/tests/testsuite/build/no_reserved_filename/src/SUMMARY.md @@ -0,0 +1,3 @@ +# Summary + +- [Print](print.md) diff --git a/tests/testsuite/build/no_reserved_filename/src/print.md b/tests/testsuite/build/no_reserved_filename/src/print.md new file mode 100644 index 00000000..849c2d3e --- /dev/null +++ b/tests/testsuite/build/no_reserved_filename/src/print.md @@ -0,0 +1 @@ +# Print