sable-markdown/src/parser/blocks/tests/code_block.rs@main
raw
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