use dioxus::prelude::*;
#[test]
fn simple() {
fn app(cx: Scope) -> Element {
render! { div { "hello!" } }
}
let mut dom = VirtualDom::new(app);
dom.rebuild();
assert_eq!(
dioxus_ssr::SsrRender::default().render_vdom(&dom),
"
hello!
"
);
}
#[test]
fn lists() {
fn app(cx: Scope) -> Element {
render! {
ul {
(0..5).map(|i| rsx! {
li { "item {i}" }
})
}
}
}
let mut dom = VirtualDom::new(app);
dom.rebuild();
assert_eq!(
dioxus_ssr::SsrRender::default().render_vdom(&dom),
"- item 0
- item 1
- item 2
- item 3
- item 4
"
);
}
#[test]
fn dynamic() {
fn app(cx: Scope) -> Element {
let dynamic = 123;
render! {
div { "Hello world 1 -->" "{dynamic}" "<-- Hello world 2" }
}
}
let mut dom = VirtualDom::new(app);
dom.rebuild();
assert_eq!(
dioxus_ssr::SsrRender::default().render_vdom(&dom),
"Hello world 1 -->123<-- Hello world 2
"
);
}
#[test]
fn components() {
fn app(cx: Scope) -> Element {
render! {
div {
(0..5).map(|name| rsx! {
my_component { name: name }
})
}
}
}
#[inline_props]
fn my_component(cx: Scope, name: i32) -> Element {
render! {
div { "component {name}" }
}
}
let mut dom = VirtualDom::new(app);
dom.rebuild();
assert_eq!(
dioxus_ssr::SsrRender::default().render_vdom(&dom),
"component 0
component 1
component 2
component 3
component 4
"
);
}