From a5638fde33a88935c34650325b32d409cd67689c Mon Sep 17 00:00:00 2001 From: yggverse Date: Sun, 16 Mar 2025 18:46:12 +0200 Subject: [PATCH] implement tests --- src/line/header/gemtext.rs | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/line/header/gemtext.rs b/src/line/header/gemtext.rs index ebf3755..da0b68b 100644 --- a/src/line/header/gemtext.rs +++ b/src/line/header/gemtext.rs @@ -60,3 +60,42 @@ impl Gemtext for str { format!("{} {}", level.as_tag(), self.trim()) } } + +#[test] +fn test() { + const VALUE: &str = "H"; + let mut value: Option<&str> = Some(VALUE); + for t in ["#", "##", "###", "####"] { + if t.len() > 3 { + value = None; + } + assert_eq!(format!("{t}{VALUE}").as_value(), value); + assert_eq!(format!("{t}{VALUE} ").as_value(), value); + assert_eq!(format!("{t} {VALUE}").as_value(), value); + assert_eq!(format!("{t} {VALUE} ").as_value(), value); + } + + fn to_source(level: &Level) { + assert_eq!( + VALUE.to_source(level), + format!("{} {VALUE}", level.as_tag()) + ); + } + to_source(&Level::H1); + to_source(&Level::H2); + to_source(&Level::H3); + + fn to_level(l: &Level) { + fn assert(s: String, l: &str) { + assert_eq!(s.to_level().unwrap().as_tag(), l); + } + let t = l.as_tag(); + assert(format!("{t} {VALUE}"), t); + assert(format!("{t} {VALUE} "), t); + assert(format!("{t}{VALUE} "), t); + assert(format!("{t} {VALUE} "), t); + } + to_level(&Level::H1); + to_level(&Level::H2); + to_level(&Level::H3); +}