fix dioxus ssr
This commit is contained in:
1 parent
dc58212508
commit
4a1a00b0f0
27 files changed
+143
-141
No files matched your search
@@ -2,7 +2,7 @@ use dioxus::prelude::*;
|
||||
|
||||
#[test]
|
||||
fn static_boolean_attributs() {
|
||||
fn app(cx: Scope) -> Element {
|
||||
fn app(_: ()) -> Element {
|
||||
render! {
|
||||
div { hidden: "false" }
|
||||
div { hidden: "true" }
|
||||
@@ -10,7 +10,7 @@ fn static_boolean_attributs() {
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::render(&dom),
|
||||
@@ -20,7 +20,7 @@ fn static_boolean_attributs() {
|
||||
|
||||
#[test]
|
||||
fn dynamic_boolean_attributs() {
|
||||
fn app(cx: Scope) -> Element {
|
||||
fn app(_: ()) -> Element {
|
||||
render! {
|
||||
div { hidden: false }
|
||||
div { hidden: true }
|
||||
@@ -28,7 +28,7 @@ fn dynamic_boolean_attributs() {
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::render(&dom),
|
||||
|
||||
@@ -2,12 +2,12 @@ use dioxus::prelude::*;
|
||||
|
||||
#[test]
|
||||
fn root_ids() {
|
||||
fn app(cx: Scope) -> Element {
|
||||
fn app(_: ()) -> Element {
|
||||
render! { div { width: "100px" } }
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::pre_render(&dom),
|
||||
@@ -17,7 +17,7 @@ fn root_ids() {
|
||||
|
||||
#[test]
|
||||
fn dynamic_attributes() {
|
||||
fn app(cx: Scope) -> Element {
|
||||
fn app(_: ()) -> Element {
|
||||
let dynamic = 123;
|
||||
render! {
|
||||
div { width: "100px", div { width: "{dynamic}px" } }
|
||||
@@ -25,7 +25,7 @@ fn dynamic_attributes() {
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::pre_render(&dom),
|
||||
@@ -35,21 +35,21 @@ fn dynamic_attributes() {
|
||||
|
||||
#[test]
|
||||
fn listeners() {
|
||||
fn app(cx: Scope) -> Element {
|
||||
fn app(_: ()) -> Element {
|
||||
render! {
|
||||
div { width: "100px", div { onclick: |_| {} } }
|
||||
}
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::pre_render(&dom),
|
||||
r#"<div style="width:100px;" data-node-hydration="0"><div data-node-hydration="1,click:1"></div></div>"#
|
||||
);
|
||||
|
||||
fn app2(cx: Scope) -> Element {
|
||||
fn app2(_: ()) -> Element {
|
||||
let dynamic = 123;
|
||||
render! {
|
||||
div { width: "100px", div { width: "{dynamic}px", onclick: |_| {} } }
|
||||
@@ -57,7 +57,7 @@ fn listeners() {
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app2);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::pre_render(&dom),
|
||||
@@ -67,7 +67,7 @@ fn listeners() {
|
||||
|
||||
#[test]
|
||||
fn text_nodes() {
|
||||
fn app(cx: Scope) -> Element {
|
||||
fn app(_: ()) -> Element {
|
||||
let dynamic_text = "hello";
|
||||
render! {
|
||||
div { dynamic_text }
|
||||
@@ -75,14 +75,14 @@ fn text_nodes() {
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::pre_render(&dom),
|
||||
r#"<div data-node-hydration="0"><!--node-id1-->hello<!--#--></div>"#
|
||||
);
|
||||
|
||||
fn app2(cx: Scope) -> Element {
|
||||
fn app2(_: ()) -> Element {
|
||||
let dynamic = 123;
|
||||
render! {
|
||||
div { "{dynamic}", "{1234}" }
|
||||
@@ -90,7 +90,7 @@ fn text_nodes() {
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app2);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::pre_render(&dom),
|
||||
@@ -101,27 +101,27 @@ fn text_nodes() {
|
||||
#[allow(non_snake_case)]
|
||||
#[test]
|
||||
fn components_hydrate() {
|
||||
fn app(cx: Scope) -> Element {
|
||||
fn app(_: ()) -> Element {
|
||||
render! { Child {} }
|
||||
}
|
||||
|
||||
fn Child(cx: Scope) -> Element {
|
||||
fn Child(_: ()) -> Element {
|
||||
render! { div { "hello" } }
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::pre_render(&dom),
|
||||
r#"<div data-node-hydration="0">hello</div>"#
|
||||
);
|
||||
|
||||
fn app2(cx: Scope) -> Element {
|
||||
fn app2(_: ()) -> Element {
|
||||
render! { Child2 {} }
|
||||
}
|
||||
|
||||
fn Child2(cx: Scope) -> Element {
|
||||
fn Child2(_: ()) -> Element {
|
||||
let dyn_text = "hello";
|
||||
render! {
|
||||
div { dyn_text }
|
||||
@@ -129,34 +129,34 @@ fn components_hydrate() {
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app2);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::pre_render(&dom),
|
||||
r#"<div data-node-hydration="0"><!--node-id1-->hello<!--#--></div>"#
|
||||
);
|
||||
|
||||
fn app3(cx: Scope) -> Element {
|
||||
fn app3(_: ()) -> Element {
|
||||
render! { Child3 {} }
|
||||
}
|
||||
|
||||
fn Child3(cx: Scope) -> Element {
|
||||
fn Child3(_: ()) -> Element {
|
||||
render! { div { width: "{1}" } }
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app3);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::pre_render(&dom),
|
||||
r#"<div style="width:1;" data-node-hydration="0"></div>"#
|
||||
);
|
||||
|
||||
fn app4(cx: Scope) -> Element {
|
||||
fn app4(_: ()) -> Element {
|
||||
render! { Child4 {} }
|
||||
}
|
||||
|
||||
fn Child4(cx: Scope) -> Element {
|
||||
fn Child4(_: ()) -> Element {
|
||||
render! {
|
||||
for _ in 0..2 {
|
||||
render! {
|
||||
@@ -169,7 +169,7 @@ fn components_hydrate() {
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app4);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::pre_render(&dom),
|
||||
@@ -179,18 +179,20 @@ fn components_hydrate() {
|
||||
|
||||
#[test]
|
||||
fn hello_world_hydrates() {
|
||||
fn app(cx: Scope) -> Element {
|
||||
let mut count = use_state(cx, || 0);
|
||||
use dioxus_signals::use_signal;
|
||||
|
||||
cx.render(rsx! {
|
||||
fn app(_: ()) -> Element {
|
||||
let mut count = use_signal(|| 0);
|
||||
|
||||
render! {
|
||||
h1 { "High-Five counter: {count}" }
|
||||
button { onclick: move |_| count += 1, "Up high!" }
|
||||
button { onclick: move |_| count -= 1, "Down low!" }
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app);
|
||||
_ = dbg!(dom.rebuild());
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::pre_render(&dom),
|
||||
|
||||
@@ -2,25 +2,25 @@ use dioxus::prelude::*;
|
||||
|
||||
#[test]
|
||||
fn static_inner_html() {
|
||||
fn app(cx: Scope) -> Element {
|
||||
fn app(_: ()) -> Element {
|
||||
render! { div { dangerous_inner_html: "<div>1234</div>" } }
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(dioxus_ssr::render(&dom), r#"<div><div>1234</div></div>"#);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dynamic_inner_html() {
|
||||
fn app(cx: Scope) -> Element {
|
||||
fn app(_: ()) -> Element {
|
||||
let inner_html = "<div>1234</div>";
|
||||
render! { div { dangerous_inner_html: "{inner_html}" } }
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(dioxus_ssr::render(&dom), r#"<div><div>1234</div></div>"#);
|
||||
}
|
||||
@@ -2,18 +2,17 @@ use dioxus::prelude::*;
|
||||
|
||||
#[test]
|
||||
fn simple() {
|
||||
#[component]
|
||||
fn App(cx: Scope) -> Element {
|
||||
fn App(_: ()) -> Element {
|
||||
render! { div { "hello!" } }
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(App);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(dioxus_ssr::render(&dom), "<div>hello!</div>");
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::render_lazy(rsx!( div {"hello!"} )),
|
||||
dioxus_ssr::render_element(render!( div {"hello!"} )),
|
||||
"<div>hello!</div>"
|
||||
);
|
||||
}
|
||||
@@ -21,9 +20,9 @@ fn simple() {
|
||||
#[test]
|
||||
fn lists() {
|
||||
assert_eq!(
|
||||
dioxus_ssr::render_lazy(rsx! {
|
||||
dioxus_ssr::render_element(render! {
|
||||
ul {
|
||||
(0..5).map(|i| rsx! {
|
||||
(0..5).map(|i| render! {
|
||||
li { "item {i}" }
|
||||
})
|
||||
}
|
||||
@@ -36,7 +35,7 @@ fn lists() {
|
||||
fn dynamic() {
|
||||
let dynamic = 123;
|
||||
assert_eq!(
|
||||
dioxus_ssr::render_lazy(rsx! {
|
||||
dioxus_ssr::render_element(render! {
|
||||
div { "Hello world 1 -->" "{dynamic}" "<-- Hello world 2" }
|
||||
}),
|
||||
"<div>Hello world 1 -->123<-- Hello world 2</div>"
|
||||
@@ -45,15 +44,19 @@ fn dynamic() {
|
||||
|
||||
#[test]
|
||||
fn components() {
|
||||
#[component]
|
||||
fn MyComponent(cx: Scope, name: i32) -> Element {
|
||||
#[derive(Props, Clone, PartialEq)]
|
||||
struct MyComponentProps {
|
||||
name: i32,
|
||||
}
|
||||
|
||||
fn MyComponent(MyComponentProps { name }: MyComponentProps) -> Element {
|
||||
render! { div { "component {name}" } }
|
||||
}
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::render_lazy(rsx! {
|
||||
dioxus_ssr::render_element(render! {
|
||||
div {
|
||||
(0..5).map(|name| rsx! {
|
||||
(0..5).map(|name| render! {
|
||||
MyComponent { name: name }
|
||||
})
|
||||
}
|
||||
@@ -65,9 +68,9 @@ fn components() {
|
||||
#[test]
|
||||
fn fragments() {
|
||||
assert_eq!(
|
||||
dioxus_ssr::render_lazy(rsx! {
|
||||
dioxus_ssr::render_element(render! {
|
||||
div {
|
||||
(0..5).map(|_| rsx! (()))
|
||||
(0..5).map(|_| render! (()))
|
||||
}
|
||||
}),
|
||||
"<div></div>"
|
||||
|
||||
@@ -2,12 +2,12 @@ use dioxus::prelude::*;
|
||||
|
||||
#[test]
|
||||
fn static_styles() {
|
||||
fn app(cx: Scope) -> Element {
|
||||
fn app(_: ()) -> Element {
|
||||
render! { div { width: "100px" } }
|
||||
}
|
||||
|
||||
let mut dom = VirtualDom::new(app);
|
||||
_ = dom.rebuild();
|
||||
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::render(&dom),
|
||||
@@ -20,7 +20,7 @@ fn partially_dynamic_styles() {
|
||||
let dynamic = 123;
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::render_lazy(rsx! {
|
||||
dioxus_ssr::render_element(render! {
|
||||
div { width: "100px", height: "{dynamic}px" }
|
||||
}),
|
||||
r#"<div style="width:100px;height:123px;"></div>"#
|
||||
@@ -32,7 +32,7 @@ fn dynamic_styles() {
|
||||
let dynamic = 123;
|
||||
|
||||
assert_eq!(
|
||||
dioxus_ssr::render_lazy(rsx! {
|
||||
dioxus_ssr::render_element(render! {
|
||||
div { width: "{dynamic}px" }
|
||||
}),
|
||||
r#"<div style="width:123px;"></div>"#
|
||||
|
||||
Reference in new issue
Block a user