Merge pull request #2980 from ehuss/fix-test-preprocessor

Don't rebuild preprocessor map during test
This commit is contained in:
Eric Huss
2025-12-10 22:03:08 +00:00
committed by GitHub
2 changed files with 14 additions and 5 deletions

View File

@@ -263,11 +263,6 @@ impl MDBook {
}
}
// Index Preprocessor is disabled so that chapter paths
// continue to point to the actual markdown files.
self.preprocessors = determine_preprocessors(&self.config, &self.root)?;
self.preprocessors
.shift_remove_entry(IndexPreprocessor::NAME);
let (book, _) = self.preprocess_book(&TestRenderer)?;
let color_output = std::io::stderr().is_terminal();

View File

@@ -44,6 +44,20 @@ fn runs_preprocessors() {
assert_eq!(inner.rendered_with, ["html"]);
}
// Run tests with a custom preprocessor.
#[test]
fn test_with_custom_preprocessor() {
let test = BookTest::init(|_| {});
let spy: Arc<Mutex<Inner>> = Default::default();
let mut book = test.load_book();
book.with_preprocessor(Spy(Arc::clone(&spy)));
book.test(vec![]).unwrap();
let inner = spy.lock().unwrap();
assert_eq!(inner.run_count, 1);
assert_eq!(inner.rendered_with, ["test"]);
}
// No-op preprocessor works.
#[test]
fn nop_preprocessor() {