sauron-node-macro 0.54.1

An html library for building client side webapps
Documentation
use sauron::{
    html::{attributes::*, *},
    *,
};

#[test]
fn style_should_be_valid() {
    let node1: Node<()> = node!(<div style="border:1px solid green;"></div>);
    let expected = r#"<div style="border:1px solid green;"></div>"#;
    let mut buffer = String::new();
    node1.render(&mut buffer).expect("must have no error");
    assert_eq!(expected, buffer);
}

#[test]
fn must_compile() {
    let result: Node<()> = node! {
        <div id="hello">"Hello world"</div>
    };

    let expected = div(vec![id("hello")], vec![text("Hello world")]);
    assert_eq!(expected, result);
}

#[test]
fn must_correctly_create_self_closing_tag() {
    let result: Node<()> = node! {
        <img src="hello.jpg"></img>
    };

    let expected = r#"<img src="hello.jpg"/>"#;
    assert_eq!(expected, result.render_to_string());
}

#[test]
fn must_correctly_create_non_self_closing_tag() {
    let result: Node<()> = node! {
        <div class="hello"></div>
    };

    let expected = r#"<div class="hello"></div>"#;
    assert_eq!(expected, result.render_to_string());
}

#[test]
fn must_correctly_create_tags_with_namespace() {
    let result: Node<()> = node! {
        <svg><rect x="1" y="1"></rect></svg>
    };

    let expected = r#"<svg><rect x="1" y="1"></rect></svg>"#;
    assert_eq!(expected, result.render_to_string());
}