mirror of
				https://github.com/askama-rs/askama.git
				synced 2025-11-04 07:23:15 +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();
 | 
					        .unwrap();
 | 
				
			||||||
        assert_eq!(config.whitespace, WhitespaceHandling::Minimize);
 | 
					        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!(" 1{# #} ", " 1 ");
 | 
				
			||||||
    test_template!("\n1{# #}\n\n\n", "\n1\n\n\n");
 | 
					    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