#[cfg(test)]
mod tests {
use crate::test_helpers::*;
#[test]
fn test_bif_eval() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str("<div>{:eval; a >> b :}</div>");
let result = template.render();
assert!(!template.has_error());
assert_eq!(result, "<div>b</div>");
}
#[test]
fn test_bif_eval_evaluation() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str("<div>{:eval; {:;__test-nts:} >> {:;__eval__:} :}</div>");
let result = template.render();
assert!(!template.has_error());
assert_eq!(result, "<div>nts</div>");
}
#[test]
fn test_bif_eval_negate_1() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str("<div>{:!eval; {:;__test-nts:} >> nts :}</div>");
let result = template.render();
assert!(!template.has_error());
assert_eq!(result, "<div></div>");
}
#[test]
fn test_bif_eval_negate_2() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str("<div>{:!eval; {:;__test-empty-nts:} >> nts :}</div>");
let result = template.render();
assert!(!template.has_error());
assert_eq!(result, "<div>nts</div>");
}
#[test]
fn test_bif_eval_scope_1() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str(
"<div>{:eval; {:include; tests/snippets.ntpl :} >> nts :}{:snippet; test-snippet :}</div>",
);
let result = template.render();
assert!(!template.has_error());
assert_eq!(result, "<div></div>");
}
#[test]
fn test_bif_eval_scope_2() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str(
"<div>{:+eval; {:include; tests/snippets.ntpl :} >> nts :}{:snippet; test-snippet :}</div>",
);
let result = template.render();
assert!(!template.has_error());
assert_eq!(result, "<div><div>test snippet</div></div>");
}
#[test]
fn test_bif_eval_scope_3() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str(
"<div>{:+eval; 1 >> {:include; tests/snippets.ntpl :} :}{:snippet; test-snippet :}</div>",
);
let result = template.render();
assert!(!template.has_error());
assert_eq!(result, "<div><div>test snippet</div></div>");
}
#[test]
fn test_bif_eval_scope_4() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str("<div>{:+eval; {:include; tests/snippets.ntpl :} >> {:include; tests/snippets.ntpl :} :}{:snippet; test-snippet :}</div>");
let result = template.render();
assert!(!template.has_error());
assert_eq!(result, "<div><div>test snippet</div></div>");
}
#[test]
fn test_bif_eval_invalid_flag() {
let mut template = match crate::Template::new() {
Ok(tpl) => tpl,
Err(error) => {
println!("Error creating Template: {}", error);
assert!(false);
return;
}
};
template.merge_schema_str(SCHEMA).unwrap();
template.set_src_str("<div>{:eval; {:flg; invalid_flag :} a >> b :}</div>");
let result = template.render();
assert!(template.has_error());
assert_eq!(result, "<div></div>");
}
}