wayver's git archive


an obsidian renderer
git clone https://git.wayver.dev/sable

sable-markdown/src/parser/blocks/tests/heading.rs@2b84405277e54ab809e328cf0237374d4b4dbd0c

raw
Date Commit Message Author Files + -
2026-02-23 01:55 initial mvp wayverd 139 17808 0
...

1use crate::{ast::*, parser::parse_markdown};
2
3#[test]
4fn heading_v1() {
5    let doc = parse_markdown("## a").unwrap();
6    assert_eq!(
7        doc,
8        Document {
9            blocks: vec![Block::Heading(Heading {
10                kind: HeadingKind::Atx(2),
11                content: vec![Inline::Text("a".to_owned())]
12            })]
13        }
14    );
15}
16
17#[test]
18#[should_panic]
19fn heading_v1_no_space() {
20    let doc = parse_markdown("##a").unwrap();
21    assert_eq!(
22        doc,
23        Document {
24            blocks: vec![Block::Heading(Heading {
25                kind: HeadingKind::Atx(2),
26                content: vec![Inline::Text("a".to_owned())]
27            })]
28        }
29    );
30}
31
32#[test]
33fn heading_v2() {
34    let doc = parse_markdown("a\n==").unwrap();
35    assert_eq!(
36        doc,
37        Document {
38            blocks: vec![Block::Heading(Heading {
39                kind: HeadingKind::Setext(SetextHeading::Level1),
40                content: vec![Inline::Text("a".to_owned())]
41            })]
42        }
43    );
44
45    let doc = parse_markdown("a\n--").unwrap();
46    assert_eq!(
47        doc,
48        Document {
49            blocks: vec![Block::Heading(Heading {
50                kind: HeadingKind::Setext(SetextHeading::Level2),
51                content: vec![Inline::Text("a".to_owned())]
52            })]
53        }
54    );
55}
56