use crate::{
Parser, SafeMode, parser::SourceLine, tests::prelude::inline_file_handler::InlineFileHandler,
warnings::WarningType,
};
#[test]
fn conditional_warning_in_cell_included_content_keeps_its_origin() {
let handler = InlineFileHandler::from_pairs([("inc.adoc", "line one\nline two\nendif::foo[]")]);
let doc = Parser::default()
.with_safe_mode(SafeMode::Server)
.with_include_file_handler(handler)
.parse("|===\na| include::inc.adoc[]\n|===");
let unmatched: Vec<_> = doc
.warnings()
.filter(|w| {
matches!(
&w.warning,
WarningType::UnmatchedConditionalDirective(d) if d == "endif::foo[]"
)
})
.collect();
assert_eq!(unmatched.len(), 1, "expected one unmatched-endif warning");
assert_eq!(
unmatched[0].origin,
Some(SourceLine(Some("inc.adoc".to_owned()), 3))
);
}