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), "" ); } #[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
" ); }