57 lines
2.0 KiB
Rust
57 lines
2.0 KiB
Rust
use super::{build_full_doc, parse_doc_to_markdown};
|
|
|
|
fn assert_markdown_roundtrip(markdown: &str, expected: &str) {
|
|
let doc_id = "roundtrip-doc";
|
|
let title = "Roundtrip Title";
|
|
let bin = build_full_doc(title, markdown, doc_id).expect("create doc");
|
|
let result = parse_doc_to_markdown(bin, doc_id.to_string(), false, None).expect("parse doc");
|
|
assert_eq!(result.title, title);
|
|
assert_eq!(result.markdown, expected);
|
|
}
|
|
|
|
#[test]
|
|
fn test_roundtrip_inline_styles() {
|
|
let markdown = "Inline **bold** _italic_ ~~strike~~ `code` [Link](https://example.com).";
|
|
let expected = "Inline **bold** _italic_ ~~strike~~ `code` [Link](https://example.com).\n\n";
|
|
assert_markdown_roundtrip(markdown, expected);
|
|
}
|
|
|
|
#[test]
|
|
fn test_roundtrip_list_items() {
|
|
let markdown = "- Item 1\n- Item 2\n- [ ] Task\n- [x] Done";
|
|
let expected = "* Item 1\n* Item 2\n- [ ] Task\n- [x] Done\n";
|
|
assert_markdown_roundtrip(markdown, expected);
|
|
}
|
|
|
|
#[test]
|
|
fn test_roundtrip_code_block() {
|
|
let markdown = "```rust\nfn main() {}\n```";
|
|
let expected = "```rust\nfn main() {}\n\n```\n\n";
|
|
assert_markdown_roundtrip(markdown, expected);
|
|
}
|
|
|
|
#[test]
|
|
fn test_roundtrip_code_block_indentation() {
|
|
let markdown = "```python\n def indented():\n return \"ok\"\n```";
|
|
let doc_id = "roundtrip-indent";
|
|
let title = "Roundtrip Title";
|
|
let bin = build_full_doc(title, markdown, doc_id).expect("create doc");
|
|
let result = parse_doc_to_markdown(bin, doc_id.to_string(), false, None).expect("parse doc");
|
|
assert!(result.markdown.contains("\n def indented():"));
|
|
assert!(result.markdown.contains("\n return \"ok\""));
|
|
}
|
|
|
|
#[test]
|
|
fn test_roundtrip_table() {
|
|
let markdown = "| A | B |\n| --- | --- |\n| 1 | 2 |";
|
|
let expected = "|A|B|\n|---|---|\n|1|2|\n\n";
|
|
assert_markdown_roundtrip(markdown, expected);
|
|
}
|
|
|
|
#[test]
|
|
fn test_roundtrip_image_with_caption() {
|
|
let markdown = "";
|
|
let expected = "<img\n src=\"blob://image-id\"\n alt=\"Alt\"\n width=\"auto\"\n height=\"auto\"\n/>\n\n";
|
|
assert_markdown_roundtrip(markdown, expected);
|
|
}
|