#[cfg(test)]
mod md_to_ast {
use pulldown_cmark::*;
use crate::{syntax_highlighting::test_common::shared::*, FrontmatterExtractionResponse};
#[test]
fn parse_md_content_with_json_frontmatter() {
let md_content = get_md_file_with_json_frontmatter();
let result: FrontmatterExtractionResponse = md_content.as_ref().into();
let FrontmatterExtractionResponse::ValidFrontmatter(_frontmatter, content) = result else {
panic!();
};
let parser = pulldown_cmark::Parser::new(&content);
let mut h1_count = 0;
let mut unordered_list_count = 0;
let mut ordered_list_count = 0;
for event in parser {
println!("{event:?}");
match event {
Event::Start(Tag::Heading(HeadingLevel::H1, _, _)) => h1_count += 1,
Event::Start(Tag::List(Some(_))) => ordered_list_count += 1,
Event::Start(Tag::List(None)) => unordered_list_count += 1,
_ => {}
}
}
assert_eq!(h1_count, 1);
assert_eq!(unordered_list_count, 1);
assert_eq!(ordered_list_count, 1);
}
}