mirror of
https://github.com/askama-rs/askama.git
synced 2025-10-02 15:25:19 +00:00
Add tests for whitespace argument in template derive proc-macro
This commit is contained in:
parent
3ea521d6e8
commit
40be079d5d
@ -549,4 +549,34 @@ mod tests {
|
||||
.unwrap();
|
||||
assert_eq!(config.whitespace, WhitespaceHandling::Minimize);
|
||||
}
|
||||
|
||||
#[cfg(feature = "toml")]
|
||||
#[test]
|
||||
fn test_whitespace_in_template() {
|
||||
// Checking that template arguments have precedence over general configuration.
|
||||
// So in here, in the template arguments, there is `whitespace = "minimize"` so
|
||||
// the `WhitespaceHandling` should be `Minimize` as well.
|
||||
let config = Config::new(
|
||||
r#"
|
||||
[general]
|
||||
whitespace = "suppress"
|
||||
"#,
|
||||
Some(&"minimize".to_owned()),
|
||||
)
|
||||
.unwrap();
|
||||
assert_eq!(config.whitespace, WhitespaceHandling::Minimize);
|
||||
|
||||
let config = Config::new(r#""#, Some(&"minimize".to_owned())).unwrap();
|
||||
assert_eq!(config.whitespace, WhitespaceHandling::Minimize);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_config_whitespace_error() {
|
||||
let config = Config::new(r#""#, Some(&"trim".to_owned()));
|
||||
if let Err(err) = config {
|
||||
assert_eq!(err.msg, "invalid value for `whitespace`: \"trim\"");
|
||||
} else {
|
||||
panic!("Config::new should have return an error");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -116,3 +116,27 @@ fn test_outer_whitespace() {
|
||||
test_template!(" 1{# #} ", " 1 ");
|
||||
test_template!("\n1{# #}\n\n\n", "\n1\n\n\n");
|
||||
}
|
||||
|
||||
macro_rules! test_template_ws_config {
|
||||
($config:literal, $ws:literal, $source:literal, $rendered: literal) => {{
|
||||
#[derive(Template)]
|
||||
#[template(source = $source, ext = "txt", config = $config, whitespace = $ws)]
|
||||
struct CondWs;
|
||||
|
||||
assert_eq!(CondWs.render().unwrap(), $rendered);
|
||||
}};
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_template_whitespace_config() {
|
||||
test_template_ws_config!("test_trim.toml", "preserve", "\t1{# #}\t2", "\t1\t2");
|
||||
test_template_ws_config!("test_trim.toml", "minimize", " 1{# #} 2", " 1 2");
|
||||
test_template_ws_config!("test_trim.toml", "suppress", " 1{# #} 2", " 12");
|
||||
test_template_ws_config!(
|
||||
"test_minimize.toml",
|
||||
"preserve",
|
||||
"\n1{# #}\n\n\n2",
|
||||
"\n1\n\n\n2"
|
||||
);
|
||||
test_template_ws_config!("test_minimize.toml", "suppress", "\n1{# #}\n\n\n2", "\n12");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user