wayver's git archive


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

sable-markdown/src/parser/blocks/tests/code_block.rs@main

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

1use crate::ast::*;
2use crate::parser::parse_markdown;
3
4#[test]
5fn code_block_indented1() {
6    let doc = parse_markdown("     a").unwrap();
7    assert_eq!(
8        doc,
9        Document {
10            blocks: vec![Block::CodeBlock(CodeBlock {
11                kind: CodeBlockKind::Indented,
12                literal: " a".to_owned()
13            })]
14        }
15    );
16}
17
18#[test]
19fn code_block_indented2() {
20    let doc = parse_markdown("     a\n    b").unwrap();
21    assert_eq!(
22        doc,
23        Document {
24            blocks: vec![Block::CodeBlock(CodeBlock {
25                kind: CodeBlockKind::Indented,
26                literal: " a\nb".to_owned()
27            })]
28        }
29    );
30}
31
32#[test]
33fn code_block_fenced1() {
34    let doc = parse_markdown("```\na\n```").unwrap();
35    assert_eq!(
36        doc,
37        Document {
38            blocks: vec![Block::CodeBlock(CodeBlock {
39                kind: CodeBlockKind::Fenced { info: None },
40                literal: "a".to_owned()
41            })]
42        }
43    );
44}
45
46#[test]
47fn code_block_fenced2() {
48    let doc = parse_markdown("  `````\na\n`````````").unwrap();
49    assert_eq!(
50        doc,
51        Document {
52            blocks: vec![Block::CodeBlock(CodeBlock {
53                kind: CodeBlockKind::Fenced { info: None },
54                literal: "a".to_owned()
55            })]
56        }
57    );
58}
59
60#[test]
61fn code_block_fenced3() {
62    let doc = parse_markdown("  ```\n    a\n      b\n```").unwrap();
63    assert_eq!(
64        doc,
65        Document {
66            blocks: vec![Block::CodeBlock(CodeBlock {
67                kind: CodeBlockKind::Fenced { info: None },
68                literal: "  a\n    b".to_owned()
69            })]
70        }
71    );
72}
73
74#[test]
75fn code_block_fenced4() {
76    let doc = parse_markdown("  ```rust\na\n```").unwrap();
77    assert_eq!(
78        doc,
79        Document {
80            blocks: vec![Block::CodeBlock(CodeBlock {
81                kind: CodeBlockKind::Fenced {
82                    info: Some("rust".to_owned())
83                },
84                literal: "a".to_owned()
85            })]
86        }
87    );
88}
89