This commit is contained in:
Lukas Stancik
2026-04-04 09:40:28 +02:00
commit 5d3afabd24
218 changed files with 82634 additions and 0 deletions
+186
View File
@@ -0,0 +1,186 @@
use markdown::mdast::{InlineCode, Node};
use mdast_util_to_markdown::to_markdown as to;
use pretty_assertions::assert_eq;
#[test]
fn text() {
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::new(),
position: None
}))
.unwrap(),
"``\n",
"should support an empty code text"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("a"),
position: None
}))
.unwrap(),
"`a`\n",
"should support a code text"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from(" "),
position: None
}))
.unwrap(),
"` `\n",
"should support a space"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("\n"),
position: None
}))
.unwrap(),
"`\n`\n",
"should support an eol"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from(" "),
position: None
}))
.unwrap(),
"` `\n",
"should support several spaces"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("a`b"),
position: None
}))
.unwrap(),
"``a`b``\n",
"should use a fence of two grave accents if the value contains one"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("a``b"),
position: None
}))
.unwrap(),
"`a``b`\n",
"should use a fence of one grave accent if the value contains two"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("a``b`c"),
position: None
}))
.unwrap(),
"```a``b`c```\n",
"should use a fence of three grave accents if the value contains two and one"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("`a"),
position: None
}))
.unwrap(),
"`` `a ``\n",
"should pad w/ a space if the value starts w/ a grave accent"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("a`"),
position: None
}))
.unwrap(),
"`` a` ``\n",
"should pad w/ a space if the value ends w/ a grave accent"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from(" a "),
position: None
}))
.unwrap(),
"` a `\n",
"should pad w/ a space if the value starts and ends w/ a space"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from(" a"),
position: None
}))
.unwrap(),
"` a`\n",
"should not pad w/ spaces if the value ends w/ a non-space"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("a "),
position: None
}))
.unwrap(),
"`a `\n",
"should not pad w/ spaces if the value starts w/ a non-space"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("a\n- b"),
position: None
}))
.unwrap(),
"`a - b`\n",
"should prevent breaking out of code (-)"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("a\n#"),
position: None
}))
.unwrap(),
"`a #`\n",
"should prevent breaking out of code (#)"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("a\n1. "),
position: None
}))
.unwrap(),
"`a 1. `\n",
"should prevent breaking out of code (\\d\\.)"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("a\r- b"),
position: None
}))
.unwrap(),
"`a - b`\n",
"should prevent breaking out of code (cr)"
);
assert_eq!(
to(&Node::InlineCode(InlineCode {
value: String::from("a\r\n- b"),
position: None
}))
.unwrap(),
"`a - b`\n",
"should prevent breaking out of code (crlf)"
);
}