From 7d602fffba97735533a8d484fb3a8a1936743ed6 Mon Sep 17 00:00:00 2001 From: Kerdonov Date: Sun, 23 Nov 2025 20:52:05 +0200 Subject: [PATCH] added cargo-tarpaulin to flake, added some tests to cracked_md --- .gitignore | 1 + cracked_md/src/parser.rs | 14 ++++++++++++++ cracked_md/src/parser/inline.rs | 31 ++++++++++++++++++++++++++++++- flake.nix | 1 + 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3cf8b8f..3673f20 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ site/ target/ result +tarpaulin-report.html diff --git a/cracked_md/src/parser.rs b/cracked_md/src/parser.rs index bfeef1f..3842d9c 100644 --- a/cracked_md/src/parser.rs +++ b/cracked_md/src/parser.rs @@ -133,6 +133,20 @@ mod test { ); } + #[test] + fn code_block_content_after_end() { + let md = "```\necho hello\n```abc"; + let doc_res = parse(md); + assert!(doc_res.is_err()); + } + + #[test] + fn code_block_no_terminating() { + let md = "```\nabc\n"; + let doc_res = parse(md); + assert!(doc_res.is_err()); + } + #[test] fn rust_code_block() { let md = "```rust\nfn main() {\n\tprintln!(\"Hello world!\");\n}\n```"; diff --git a/cracked_md/src/parser/inline.rs b/cracked_md/src/parser/inline.rs index 543ba55..7c8ad78 100644 --- a/cracked_md/src/parser/inline.rs +++ b/cracked_md/src/parser/inline.rs @@ -69,7 +69,14 @@ fn collect_until>( mod test { use crate::ast::Inline; - use super::parse_inlines; + use super::{collect_until, parse_inlines}; + + #[test] + fn collect_until_without_end() { + let mut s = "abcdef".chars().peekable(); + let res = collect_until(&mut s, '.'); + assert!(res.is_err()); + } #[test] fn bold_text() { @@ -128,4 +135,26 @@ mod test { ] ); } + + #[test] + fn single_hyperlink() { + let md = "[my site](https://example.com)"; + let inl = parse_inlines(md).unwrap(); + + assert_eq!( + inl, + vec![Inline::Link { + text: vec![Inline::Text("my site".to_string())], + href: "https://example.com".to_string() + }] + ); + } + + #[test] + fn hyperlink_without_link() { + let md = "[abc]"; + let inl = parse_inlines(md); + + assert!(inl.is_err()); + } } diff --git a/flake.nix b/flake.nix index e4f522a..d701aa2 100644 --- a/flake.nix +++ b/flake.nix @@ -25,6 +25,7 @@ cargo-nextest cargo-expand cargo-watch + cargo-tarpaulin ]; }; }