From 6746df7ce9cc6d726edf5458a73b76214cefe824 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Mon, 18 Aug 2025 11:43:30 -0700 Subject: [PATCH] Add tests for preprocessor/output default sort order --- crates/mdbook-driver/src/mdbook/tests.rs | 40 +++++++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/crates/mdbook-driver/src/mdbook/tests.rs b/crates/mdbook-driver/src/mdbook/tests.rs index 2914324c..f4a37072 100644 --- a/crates/mdbook-driver/src/mdbook/tests.rs +++ b/crates/mdbook-driver/src/mdbook/tests.rs @@ -47,12 +47,10 @@ fn config_defaults_to_link_and_index_preprocessor_if_not_set() { // make sure we haven't got anything in the `preprocessor` table assert!(cfg.preprocessors::().unwrap().is_empty()); - let got = determine_preprocessors(&cfg, Path::new("")); + let got = determine_preprocessors(&cfg, Path::new("")).unwrap(); - assert!(got.is_ok()); - assert_eq!(got.as_ref().unwrap().len(), 2); - assert_eq!(got.as_ref().unwrap()[0].name(), "index"); - assert_eq!(got.as_ref().unwrap()[1].name(), "links"); + let names: Vec<_> = got.values().map(|p| p.name()).collect(); + assert_eq!(names, ["index", "links"]); } #[test] @@ -252,3 +250,35 @@ fn preprocessor_should_run_falls_back_to_supports_renderer_method() { let got = preprocessor_should_run(&BoolPreprocessor(should_be), &html, &cfg).unwrap(); assert_eq!(got, should_be); } + +// Default is to sort preprocessors alphabetically. +#[test] +fn preprocessor_sorted_by_name() { + let cfg_str = r#" + [preprocessor.xyz] + [preprocessor.abc] + "#; + + let cfg = Config::from_str(cfg_str).unwrap(); + + let got = determine_preprocessors(&cfg, Path::new("")).unwrap(); + + let names: Vec<_> = got.values().map(|p| p.name()).collect(); + assert_eq!(names, ["abc", "index", "links", "xyz"]); +} + +// Default is to sort renderers alphabetically. +#[test] +fn renderers_sorted_by_name() { + let cfg_str = r#" + [output.xyz] + [output.abc] + "#; + + let cfg = Config::from_str(cfg_str).unwrap(); + + let got = determine_renderers(&cfg).unwrap(); + + let names: Vec<_> = got.values().map(|p| p.name()).collect(); + assert_eq!(names, ["abc", "xyz"]); +}