extern crate tera; extern crate front_matter; extern crate templates; extern crate rendering; use std::collections::HashMap; use tera::Tera; use front_matter::InsertAnchor; use templates::GUTENBERG_TERA; use rendering::{Context, markdown_to_html}; #[test] fn can_do_markdown_to_html_simple() { let tera_ctx = Tera::default(); let permalinks_ctx = HashMap::new(); let context = Context::new(&tera_ctx, true, "base16-ocean-dark".to_string(), "", &permalinks_ctx, InsertAnchor::None); let res = markdown_to_html("hello", &context).unwrap(); assert_eq!(res.0, "

hello

\n"); } #[test] fn doesnt_highlight_code_block_with_highlighting_off() { let tera_ctx = Tera::default(); let permalinks_ctx = HashMap::new(); let mut context = Context::new(&tera_ctx, true, "base16-ocean-dark".to_string(), "", &permalinks_ctx, InsertAnchor::None); context.highlight_code = false; let res = markdown_to_html("```\n$ gutenberg server\n```", &context).unwrap(); assert_eq!( res.0, "
$ gutenberg server\n
\n" ); } #[test] fn can_highlight_code_block_no_lang() { let tera_ctx = Tera::default(); let permalinks_ctx = HashMap::new(); let context = Context::new(&tera_ctx, true, "base16-ocean-dark".to_string(), "", &permalinks_ctx, InsertAnchor::None); let res = markdown_to_html("```\n$ gutenberg server\n$ ping\n```", &context).unwrap(); assert_eq!( res.0, "
\n$ gutenberg server\n$ ping\n
" ); } #[test] fn can_highlight_code_block_with_lang() { let tera_ctx = Tera::default(); let permalinks_ctx = HashMap::new(); let context = Context::new(&tera_ctx, true, "base16-ocean-dark".to_string(), "", &permalinks_ctx, InsertAnchor::None); let res = markdown_to_html("```python\nlist.append(1)\n```", &context).unwrap(); assert_eq!( res.0, "
\nlist.append(1)\n
" ); } #[test] fn can_higlight_code_block_with_unknown_lang() { let tera_ctx = Tera::default(); let permalinks_ctx = HashMap::new(); let context = Context::new(&tera_ctx, true, "base16-ocean-dark".to_string(), "", &permalinks_ctx, InsertAnchor::None); let res = markdown_to_html("```yolo\nlist.append(1)\n```", &context).unwrap(); // defaults to plain text assert_eq!( res.0, "
\nlist.append(1)\n
" ); } #[test] fn can_render_shortcode() { let permalinks_ctx = HashMap::new(); let context = Context::new(&GUTENBERG_TERA, true, "base16-ocean-dark".to_string(), "", &permalinks_ctx, InsertAnchor::None); let res = markdown_to_html(r#" Hello {{ youtube(id="ub36ffWAqgQ") }} "#, &context).unwrap(); assert!(res.0.contains("

Hello

\n
")); assert!(res.0.contains(r#"