From 53c3a92285bc930a2cda10d6d6ac0eb7f38665ee Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Mon, 17 Feb 2025 08:20:16 -0800 Subject: [PATCH] Add test for a chapter with no source path --- tests/rendered_output.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tests/rendered_output.rs b/tests/rendered_output.rs index 31606220..a44b6e14 100644 --- a/tests/rendered_output.rs +++ b/tests/rendered_output.rs @@ -3,10 +3,11 @@ mod dummy_book; use crate::dummy_book::{assert_contains_strings, assert_doesnt_contain_strings, DummyBook}; use anyhow::Context; +use mdbook::book::Chapter; use mdbook::config::Config; use mdbook::errors::*; use mdbook::utils::fs::write_file; -use mdbook::MDBook; +use mdbook::{BookItem, MDBook}; use pretty_assertions::assert_eq; use select::document::Document; use select::predicate::{Attr, Class, Name, Predicate}; @@ -1031,3 +1032,22 @@ fn custom_header_attributes() { ]; assert_contains_strings(&contents, summary_strings); } + +#[test] +#[should_panic] +fn with_no_source_path() { + // Test for a regression where search would fail if source_path is None. + let temp = DummyBook::new().build().unwrap(); + let mut md = MDBook::load(temp.path()).unwrap(); + let chapter = Chapter { + name: "Sample chapter".to_string(), + content: "".to_string(), + number: None, + sub_items: Vec::new(), + path: Some(PathBuf::from("sample.html")), + source_path: None, + parent_names: Vec::new(), + }; + md.book.sections.push(BookItem::Chapter(chapter)); + md.build().unwrap(); +}