From c6d9f15cba3450ae225b3238ad7959a50f621bd0 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Mon, 21 Apr 2025 18:53:36 -0700 Subject: [PATCH] Migrate by_default_mdbook_use_index_preprocessor_to_convert_readme_to_index to BookTest --- tests/rendered_output.rs | 20 ---------- tests/testsuite/index.rs | 38 +++++++++++++++++++ tests/testsuite/index/basic_readme/book.toml | 2 + .../index/basic_readme/src/README.md | 1 + .../index/basic_readme/src/SUMMARY.md | 6 +++ .../index/basic_readme/src/first/README | 1 + .../index/basic_readme/src/second/Readme.md | 1 + tests/testsuite/main.rs | 1 + 8 files changed, 50 insertions(+), 20 deletions(-) create mode 100644 tests/testsuite/index.rs create mode 100644 tests/testsuite/index/basic_readme/book.toml create mode 100644 tests/testsuite/index/basic_readme/src/README.md create mode 100644 tests/testsuite/index/basic_readme/src/SUMMARY.md create mode 100644 tests/testsuite/index/basic_readme/src/first/README create mode 100644 tests/testsuite/index/basic_readme/src/second/Readme.md diff --git a/tests/rendered_output.rs b/tests/rendered_output.rs index 591634db..7a726f87 100644 --- a/tests/rendered_output.rs +++ b/tests/rendered_output.rs @@ -328,26 +328,6 @@ fn example_book_can_build() { md.build().unwrap(); } -#[test] -fn by_default_mdbook_use_index_preprocessor_to_convert_readme_to_index() { - let temp = DummyBook::new().build().unwrap(); - let mut cfg = Config::default(); - cfg.set("book.src", "src2") - .expect("Couldn't set config.book.src to \"src2\"."); - let md = MDBook::load_with_config(temp.path(), cfg).unwrap(); - md.build().unwrap(); - - let first_index = temp.path().join("book").join("toc.js"); - let expected_strings = vec![ - r#"href="first/index.html""#, - r#"href="second/index.html""#, - "1st README", - "2nd README", - ]; - assert_contains_strings(&first_index, &expected_strings); - assert_doesnt_contain_strings(&first_index, &["README.html", "Second README"]); -} - #[test] fn first_chapter_is_copied_as_index_even_if_not_first_elem() { let temp = DummyBook::new().build().unwrap(); diff --git a/tests/testsuite/index.rs b/tests/testsuite/index.rs new file mode 100644 index 00000000..0555cc63 --- /dev/null +++ b/tests/testsuite/index.rs @@ -0,0 +1,38 @@ +//! Tests for the index preprocessor. + +use crate::prelude::*; + +// Checks basic README to index.html conversion. +#[test] +fn readme_to_index() { + let mut test = BookTest::from_dir("index/basic_readme"); + test.check_main_file( + "book/index.html", + str![[r##"

Intro

"##]], + ) + .check_main_file( + "book/first/index.html", + str![[r##"

First

"##]], + ) + .check_main_file( + "book/second/index.html", + str![[r##"

Second

"##]], + ) + .check_toc_js(str![[r#" +
    +
  1. +Intro +
  2. +
  3. + + First +
  4. +
  5. + + Second +
  6. +
+"#]]); + assert!(test.dir.join("book/index.html").exists()); + assert!(!test.dir.join("book/README.html").exists()); +} diff --git a/tests/testsuite/index/basic_readme/book.toml b/tests/testsuite/index/basic_readme/book.toml new file mode 100644 index 00000000..271699ca --- /dev/null +++ b/tests/testsuite/index/basic_readme/book.toml @@ -0,0 +1,2 @@ +[book] +title = "basic_readme" diff --git a/tests/testsuite/index/basic_readme/src/README.md b/tests/testsuite/index/basic_readme/src/README.md new file mode 100644 index 00000000..1e0981f1 --- /dev/null +++ b/tests/testsuite/index/basic_readme/src/README.md @@ -0,0 +1 @@ +# Intro diff --git a/tests/testsuite/index/basic_readme/src/SUMMARY.md b/tests/testsuite/index/basic_readme/src/SUMMARY.md new file mode 100644 index 00000000..fd4cbac2 --- /dev/null +++ b/tests/testsuite/index/basic_readme/src/SUMMARY.md @@ -0,0 +1,6 @@ +# Summary + +[Intro](./README.md) + +- [First](first/README) +- [Second](second/Readme.md) diff --git a/tests/testsuite/index/basic_readme/src/first/README b/tests/testsuite/index/basic_readme/src/first/README new file mode 100644 index 00000000..f6758542 --- /dev/null +++ b/tests/testsuite/index/basic_readme/src/first/README @@ -0,0 +1 @@ +# First diff --git a/tests/testsuite/index/basic_readme/src/second/Readme.md b/tests/testsuite/index/basic_readme/src/second/Readme.md new file mode 100644 index 00000000..64e2582b --- /dev/null +++ b/tests/testsuite/index/basic_readme/src/second/Readme.md @@ -0,0 +1 @@ +# Second diff --git a/tests/testsuite/main.rs b/tests/testsuite/main.rs index d273b992..6141c4f7 100644 --- a/tests/testsuite/main.rs +++ b/tests/testsuite/main.rs @@ -6,6 +6,7 @@ mod book_test; mod build; mod cli; mod includes; +mod index; mod prelude { pub use crate::book_test::BookTest;