nargo-template 0.0.1

Nargo template engine management
Documentation
use nargo_template::*;
use serde_json::json;

#[test]
fn test_handlebars_renderer() {
    let mut renderer = HandlebarsRenderer::new();

    renderer.register_template("greeting", "Hello, {{name}}!").unwrap();

    let context = json!({"name": "World"});
    let result = renderer.render("greeting", &context).unwrap();

    assert_eq!(result, "Hello, World!");
}

#[test]
fn test_template_manager() {
    let mut manager = TemplateManager::new();

    manager.register_template(TemplateEngine::Handlebars, "test", "Test: {{value}}").unwrap();

    let context = json!({"value": "Hello"});
    let result = manager.render(TemplateEngine::Handlebars, "test", &context).unwrap();

    assert_eq!(result, "Test: Hello");
}

#[test]
fn test_to_json_value() {
    let s = "test".to_string();
    assert_eq!(s.to_json_value(), serde_json::Value::String("test".to_string()));

    let i = 42;
    assert_eq!(i.to_json_value(), serde_json::Value::Number(serde_json::Number::from(42)));

    let b = true;
    assert_eq!(b.to_json_value(), serde_json::Value::Bool(true));
}

#[test]
fn test_jinja2_renderer() {
    let mut renderer = Jinja2Renderer::new();

    renderer.register_template("greeting", "Hello, {{ name }}!").unwrap();

    let context = json!({"name": "World"});
    let result = renderer.render("greeting", &context).unwrap();

    assert_eq!(result, "Hello, World!");
}

#[test]
fn test_template_manager_jinja2() {
    let mut manager = TemplateManager::new();

    manager.register_template(TemplateEngine::Jinja2, "test", "Test: {{ value }}").unwrap();

    let context = json!({"value": "Hello"});
    let result = manager.render(TemplateEngine::Jinja2, "test", &context).unwrap();

    assert_eq!(result, "Test: Hello");
}