|
@@ -2,12 +2,12 @@ use dioxus::prelude::*;
|
|
|
|
|
|
#[test]
|
|
#[test]
|
|
fn root_ids() {
|
|
fn root_ids() {
|
|
- fn app(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn app(_: ()) -> Element {
|
|
render! { div { width: "100px" } }
|
|
render! { div { width: "100px" } }
|
|
}
|
|
}
|
|
|
|
|
|
let mut dom = VirtualDom::new(app);
|
|
let mut dom = VirtualDom::new(app);
|
|
- _ = dom.rebuild();
|
|
|
|
|
|
+ _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
|
|
|
|
|
assert_eq!(
|
|
assert_eq!(
|
|
dioxus_ssr::pre_render(&dom),
|
|
dioxus_ssr::pre_render(&dom),
|
|
@@ -17,7 +17,7 @@ fn root_ids() {
|
|
|
|
|
|
#[test]
|
|
#[test]
|
|
fn dynamic_attributes() {
|
|
fn dynamic_attributes() {
|
|
- fn app(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn app(_: ()) -> Element {
|
|
let dynamic = 123;
|
|
let dynamic = 123;
|
|
render! {
|
|
render! {
|
|
div { width: "100px", div { width: "{dynamic}px" } }
|
|
div { width: "100px", div { width: "{dynamic}px" } }
|
|
@@ -25,7 +25,7 @@ fn dynamic_attributes() {
|
|
}
|
|
}
|
|
|
|
|
|
let mut dom = VirtualDom::new(app);
|
|
let mut dom = VirtualDom::new(app);
|
|
- _ = dom.rebuild();
|
|
|
|
|
|
+ _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
|
|
|
|
|
assert_eq!(
|
|
assert_eq!(
|
|
dioxus_ssr::pre_render(&dom),
|
|
dioxus_ssr::pre_render(&dom),
|
|
@@ -35,21 +35,21 @@ fn dynamic_attributes() {
|
|
|
|
|
|
#[test]
|
|
#[test]
|
|
fn listeners() {
|
|
fn listeners() {
|
|
- fn app(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn app(_: ()) -> Element {
|
|
render! {
|
|
render! {
|
|
div { width: "100px", div { onclick: |_| {} } }
|
|
div { width: "100px", div { onclick: |_| {} } }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
let mut dom = VirtualDom::new(app);
|
|
let mut dom = VirtualDom::new(app);
|
|
- _ = dom.rebuild();
|
|
|
|
|
|
+ _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
|
|
|
|
|
assert_eq!(
|
|
assert_eq!(
|
|
dioxus_ssr::pre_render(&dom),
|
|
dioxus_ssr::pre_render(&dom),
|
|
r#"<div style="width:100px;" data-node-hydration="0"><div data-node-hydration="1,click:1"></div></div>"#
|
|
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;
|
|
let dynamic = 123;
|
|
render! {
|
|
render! {
|
|
div { width: "100px", div { width: "{dynamic}px", onclick: |_| {} } }
|
|
div { width: "100px", div { width: "{dynamic}px", onclick: |_| {} } }
|
|
@@ -57,7 +57,7 @@ fn listeners() {
|
|
}
|
|
}
|
|
|
|
|
|
let mut dom = VirtualDom::new(app2);
|
|
let mut dom = VirtualDom::new(app2);
|
|
- _ = dom.rebuild();
|
|
|
|
|
|
+ _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
|
|
|
|
|
assert_eq!(
|
|
assert_eq!(
|
|
dioxus_ssr::pre_render(&dom),
|
|
dioxus_ssr::pre_render(&dom),
|
|
@@ -67,7 +67,7 @@ fn listeners() {
|
|
|
|
|
|
#[test]
|
|
#[test]
|
|
fn text_nodes() {
|
|
fn text_nodes() {
|
|
- fn app(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn app(_: ()) -> Element {
|
|
let dynamic_text = "hello";
|
|
let dynamic_text = "hello";
|
|
render! {
|
|
render! {
|
|
div { dynamic_text }
|
|
div { dynamic_text }
|
|
@@ -75,14 +75,14 @@ fn text_nodes() {
|
|
}
|
|
}
|
|
|
|
|
|
let mut dom = VirtualDom::new(app);
|
|
let mut dom = VirtualDom::new(app);
|
|
- _ = dom.rebuild();
|
|
|
|
|
|
+ _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
|
|
|
|
|
assert_eq!(
|
|
assert_eq!(
|
|
dioxus_ssr::pre_render(&dom),
|
|
dioxus_ssr::pre_render(&dom),
|
|
r#"<div data-node-hydration="0"><!--node-id1-->hello<!--#--></div>"#
|
|
r#"<div data-node-hydration="0"><!--node-id1-->hello<!--#--></div>"#
|
|
);
|
|
);
|
|
|
|
|
|
- fn app2(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn app2(_: ()) -> Element {
|
|
let dynamic = 123;
|
|
let dynamic = 123;
|
|
render! {
|
|
render! {
|
|
div { "{dynamic}", "{1234}" }
|
|
div { "{dynamic}", "{1234}" }
|
|
@@ -90,7 +90,7 @@ fn text_nodes() {
|
|
}
|
|
}
|
|
|
|
|
|
let mut dom = VirtualDom::new(app2);
|
|
let mut dom = VirtualDom::new(app2);
|
|
- _ = dom.rebuild();
|
|
|
|
|
|
+ _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
|
|
|
|
|
assert_eq!(
|
|
assert_eq!(
|
|
dioxus_ssr::pre_render(&dom),
|
|
dioxus_ssr::pre_render(&dom),
|
|
@@ -101,27 +101,27 @@ fn text_nodes() {
|
|
#[allow(non_snake_case)]
|
|
#[allow(non_snake_case)]
|
|
#[test]
|
|
#[test]
|
|
fn components_hydrate() {
|
|
fn components_hydrate() {
|
|
- fn app(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn app(_: ()) -> Element {
|
|
render! { Child {} }
|
|
render! { Child {} }
|
|
}
|
|
}
|
|
|
|
|
|
- fn Child(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn Child(_: ()) -> Element {
|
|
render! { div { "hello" } }
|
|
render! { div { "hello" } }
|
|
}
|
|
}
|
|
|
|
|
|
let mut dom = VirtualDom::new(app);
|
|
let mut dom = VirtualDom::new(app);
|
|
- _ = dom.rebuild();
|
|
|
|
|
|
+ _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
|
|
|
|
|
assert_eq!(
|
|
assert_eq!(
|
|
dioxus_ssr::pre_render(&dom),
|
|
dioxus_ssr::pre_render(&dom),
|
|
r#"<div data-node-hydration="0">hello</div>"#
|
|
r#"<div data-node-hydration="0">hello</div>"#
|
|
);
|
|
);
|
|
|
|
|
|
- fn app2(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn app2(_: ()) -> Element {
|
|
render! { Child2 {} }
|
|
render! { Child2 {} }
|
|
}
|
|
}
|
|
|
|
|
|
- fn Child2(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn Child2(_: ()) -> Element {
|
|
let dyn_text = "hello";
|
|
let dyn_text = "hello";
|
|
render! {
|
|
render! {
|
|
div { dyn_text }
|
|
div { dyn_text }
|
|
@@ -129,34 +129,34 @@ fn components_hydrate() {
|
|
}
|
|
}
|
|
|
|
|
|
let mut dom = VirtualDom::new(app2);
|
|
let mut dom = VirtualDom::new(app2);
|
|
- _ = dom.rebuild();
|
|
|
|
|
|
+ _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
|
|
|
|
|
assert_eq!(
|
|
assert_eq!(
|
|
dioxus_ssr::pre_render(&dom),
|
|
dioxus_ssr::pre_render(&dom),
|
|
r#"<div data-node-hydration="0"><!--node-id1-->hello<!--#--></div>"#
|
|
r#"<div data-node-hydration="0"><!--node-id1-->hello<!--#--></div>"#
|
|
);
|
|
);
|
|
|
|
|
|
- fn app3(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn app3(_: ()) -> Element {
|
|
render! { Child3 {} }
|
|
render! { Child3 {} }
|
|
}
|
|
}
|
|
|
|
|
|
- fn Child3(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn Child3(_: ()) -> Element {
|
|
render! { div { width: "{1}" } }
|
|
render! { div { width: "{1}" } }
|
|
}
|
|
}
|
|
|
|
|
|
let mut dom = VirtualDom::new(app3);
|
|
let mut dom = VirtualDom::new(app3);
|
|
- _ = dom.rebuild();
|
|
|
|
|
|
+ _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
|
|
|
|
|
assert_eq!(
|
|
assert_eq!(
|
|
dioxus_ssr::pre_render(&dom),
|
|
dioxus_ssr::pre_render(&dom),
|
|
r#"<div style="width:1;" data-node-hydration="0"></div>"#
|
|
r#"<div style="width:1;" data-node-hydration="0"></div>"#
|
|
);
|
|
);
|
|
|
|
|
|
- fn app4(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn app4(_: ()) -> Element {
|
|
render! { Child4 {} }
|
|
render! { Child4 {} }
|
|
}
|
|
}
|
|
|
|
|
|
- fn Child4(cx: Scope) -> Element {
|
|
|
|
|
|
+ fn Child4(_: ()) -> Element {
|
|
render! {
|
|
render! {
|
|
for _ in 0..2 {
|
|
for _ in 0..2 {
|
|
render! {
|
|
render! {
|
|
@@ -169,7 +169,7 @@ fn components_hydrate() {
|
|
}
|
|
}
|
|
|
|
|
|
let mut dom = VirtualDom::new(app4);
|
|
let mut dom = VirtualDom::new(app4);
|
|
- _ = dom.rebuild();
|
|
|
|
|
|
+ _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
|
|
|
|
|
assert_eq!(
|
|
assert_eq!(
|
|
dioxus_ssr::pre_render(&dom),
|
|
dioxus_ssr::pre_render(&dom),
|
|
@@ -179,18 +179,20 @@ fn components_hydrate() {
|
|
|
|
|
|
#[test]
|
|
#[test]
|
|
fn hello_world_hydrates() {
|
|
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}" }
|
|
h1 { "High-Five counter: {count}" }
|
|
button { onclick: move |_| count += 1, "Up high!" }
|
|
button { onclick: move |_| count += 1, "Up high!" }
|
|
button { onclick: move |_| count -= 1, "Down low!" }
|
|
button { onclick: move |_| count -= 1, "Down low!" }
|
|
- })
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
let mut dom = VirtualDom::new(app);
|
|
let mut dom = VirtualDom::new(app);
|
|
- _ = dbg!(dom.rebuild());
|
|
|
|
|
|
+ _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
|
|
|
|
|
|
assert_eq!(
|
|
assert_eq!(
|
|
dioxus_ssr::pre_render(&dom),
|
|
dioxus_ssr::pre_render(&dom),
|