diff options
author | Vincent Ambo <mail@tazj.in> | 2021-03-27T15·47+0200 |
---|---|---|
committer | tazjin <mail@tazj.in> | 2021-03-31T22·06+0000 |
commit | c7105090786d34bbb7cc1da9cead7441411ad858 (patch) | |
tree | b1d88b752f5c6ef344da28b0448707d53308ef13 /tools/cheddar/src/tests.rs | |
parent | 58cca2faaa01af057eafc53fbf3a81b61c88387b (diff) |
test(cheddar): Add simple Markdown rendering tests r/2373
Covers some of the odd things we do, specifically callouts and code rendering. Change-Id: Ib8542373b434b53d277b0d8c9ddb78ac7c5176a5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2689 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
Diffstat (limited to 'tools/cheddar/src/tests.rs')
-rw-r--r-- | tools/cheddar/src/tests.rs | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tools/cheddar/src/tests.rs b/tools/cheddar/src/tests.rs new file mode 100644 index 000000000000..8b8219b22d7c --- /dev/null +++ b/tools/cheddar/src/tests.rs @@ -0,0 +1,63 @@ +use super::*; +use std::io::BufReader; + +// Markdown rendering expectation, ignoring leading and trailing +// whitespace in the input and output. +fn expect_markdown(input: &str, expected: &str) { + let mut input_buf = BufReader::new(input.trim().as_bytes()); + let mut out_buf: Vec<u8> = vec![]; + format_markdown(&mut input_buf, &mut out_buf); + + let out_string = String::from_utf8(out_buf).expect("output should be UTF8"); + assert_eq!(out_string.trim(), expected.trim()); +} + +#[test] +fn renders_simple_markdown() { + expect_markdown("hello", "<p>hello</p>\n"); +} + +#[test] +fn renders_callouts() { + expect_markdown( + "TODO some task.", + r#"<p class="cheddar-callout cheddar-todo"> +TODO some task. +</p> +"#, + ); + + expect_markdown( + "WARNING: be careful", + r#"<p class="cheddar-callout cheddar-warning"> +WARNING: be careful +</p> +"#, + ); + + expect_markdown( + "TIP: note the thing", + r#"<p class="cheddar-callout cheddar-tip"> +TIP: note the thing +</p> +"#, + ); +} + +#[test] +fn renders_code_snippets() { + expect_markdown( + r#" +Code: +```nix +toString 42 +``` +"#, + r#" +<p>Code:</p> +<pre style="background-color:#f6f8fa;padding:16px;"> +<span style="color:#62a35c;">toString </span><span style="color:#0086b3;">42 +</span></pre> +"#, + ); +} |