fix more errors in core tests

This commit is contained in:
Evan Almloff 2024-01-11 12:40:36 -06:00
parent 8d783490a0
commit a9d09d858b
20 changed files with 84 additions and 155 deletions

View file

@ -5,11 +5,7 @@ fn main() {}
fn app() -> Element {
let count: &RefCell<Vec<Element>> = cx.use_hook(|| RefCell::new(Vec::new()));
render! {
unsafe_child_component {
borrowed: count
}
}
render! { unsafe_child_component { borrowed: count } }
}
#[derive(Props)]
@ -26,7 +22,5 @@ fn unsafe_child_component<'a>(cx: Testing) -> Element {
.borrow_mut()
.push(render! {"{borrowed_temporary_data}"});
cx.render(rsx! {
div { "Hello, world!" }
})
render! { div { "Hello, world!" } }
}

View file

@ -5,11 +5,7 @@ fn main() {}
fn app() -> Element {
let count = vec![1, 2, 3];
render! {
unsafe_child_component {
borrowed: &count
}
}
render! { unsafe_child_component { borrowed: &count } }
}
#[derive(Props)]
@ -18,7 +14,5 @@ struct Testing<'a> {
}
fn unsafe_child_component<'a>(cx: Testing) -> Element {
cx.render(rsx! {
div { "{cx.borrowed:?}" }
})
render! { div { "{cx.borrowed:?}" } }
}

View file

@ -102,10 +102,10 @@ impl<F: Fn() -> Element> HasProps<ZeroElementMarker> for F {
#[test]
fn test_empty_builder() {
fn app() -> Element {
render!(div {})
todo!()
}
fn app2(_: ()) -> Element {
render!(div {})
todo!()
}
let builder = fc_to_builder(app);
builder.build();

View file

@ -9,7 +9,7 @@ use dioxus_core::BorrowedAttributeValue;
#[test]
fn attrs_cycle() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let id = generation();
match generation() % 2 {
0 => render! { div {} },
@ -36,18 +36,8 @@ fn attrs_cycle() {
[
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
AssignId { path: &[0,], id: ElementId(3,) },
SetAttribute {
name: "class",
value: (&*bump.alloc("1".into_value(&bump))).into(),
id: ElementId(3,),
ns: None
},
SetAttribute {
name: "id",
value: (&*bump.alloc("1".into_value(&bump))).into(),
id: ElementId(3,),
ns: None
},
SetAttribute { name: "class", value: "1".into_value(), id: ElementId(3,), ns: None },
SetAttribute { name: "id", value: "1".into_value(), id: ElementId(3,), ns: None },
ReplaceWith { id: ElementId(1,), m: 1 },
]
);

View file

@ -1,53 +0,0 @@
#![allow(non_snake_case)]
use dioxus::core::{ElementId, Mutation::*};
use dioxus::prelude::*;
#[test]
fn test_borrowed_state() {
let mut dom = VirtualDom::new(Parent);
assert_eq!(
dom.rebuild_to_vec().santize().edits,
[
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
LoadTemplate { name: "template", index: 0, id: ElementId(3,) },
HydrateText { path: &[0,], value: "Hello w1!".to_string(), id: ElementId(4,) },
ReplacePlaceholder { path: &[1,], m: 1 },
ReplacePlaceholder { path: &[0,], m: 1 },
AppendChildren { m: 1, id: ElementId(0) },
]
);
}
fn Parent() -> Element {
let w1 = cx.use_hook(|| String::from("w1"));
render! {
div { Child { name: w1 } }
}
}
#[derive(Props)]
struct ChildProps<'a> {
name: &'a str,
}
fn Child<'a>(cx: ChildProps) -> Element {
render! {
div {
h1 { "it's nested" }
Child2 { name: cx.name }
}
}
}
#[derive(Props)]
struct Grandchild<'a> {
name: &'a str,
}
fn Child2<'a>(cx: Grandchild) -> Element {
render!( div { "Hello {cx.name}!" } )
}

View file

@ -4,7 +4,7 @@ use dioxus::prelude::*;
#[test]
fn state_shares() {
fn app() -> Element {
cx.provide_context(generation().unwrap() as i32);
cx.provide_context(generation() as i32);
render!(child_1 {})
}
@ -29,11 +29,15 @@ fn state_shares() {
dom.mark_dirty(ScopeId::ROOT);
_ = dom.render_immediate_to_vec();
assert_eq!(dom.base_scope().consume_context::<i32>().unwrap(), 1);
dom.in_runtime(|| {
assert_eq!(ScopeId::ROOT.consume_context::<i32>().unwrap(), 1);
});
dom.mark_dirty(ScopeId::ROOT);
_ = dom.render_immediate_to_vec();
assert_eq!(dom.base_scope().consume_context::<i32>().unwrap(), 2);
dom.in_runtime(|| {
assert_eq!(ScopeId::ROOT.consume_context::<i32>().unwrap(), 2);
});
dom.mark_dirty(ScopeId(2));
assert_eq!(

View file

@ -11,7 +11,7 @@ use dioxus_core::ElementId;
#[test]
fn test_original_diff() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
render! {
div { div { "Hello, world!" } }
}
@ -31,7 +31,7 @@ fn test_original_diff() {
#[test]
fn create() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
render! {
div {
div {
@ -94,7 +94,7 @@ fn create_list() {
#[test]
fn create_simple() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
render! {
div {}
div {}
@ -121,7 +121,7 @@ fn create_simple() {
}
#[test]
fn create_components() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
render! {
Child { "abc1" }
Child { "abc2" }
@ -149,7 +149,7 @@ fn create_components() {
#[test]
fn anchors() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
render! {
if true {
render!( div { "hello" } )

View file

@ -3,7 +3,7 @@ use dioxus::prelude::*;
#[test]
fn multiroot() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
render! {
div { "Hello a" }
div { "Hello b" }

View file

@ -24,7 +24,7 @@ fn empty_fragment_creates_nothing() {
#[test]
fn root_fragments_work() {
let mut vdom = VirtualDom::new(|cx| {
let mut vdom = VirtualDom::new(|| {
render!(
div { "hello" }
div { "goodbye" }
@ -39,7 +39,7 @@ fn root_fragments_work() {
#[test]
fn fragments_nested() {
let mut vdom = VirtualDom::new(|cx| {
let mut vdom = VirtualDom::new(|| {
render!(
div { "hello" }
div { "goodbye" }

View file

@ -53,7 +53,7 @@ fn nested_passthru_creates_add() {
}
#[component]
fn ChildComp<'a>(children: Element) -> Element {
fn ChildComp(children: Element) -> Element {
render! {children}
}

View file

@ -10,7 +10,7 @@ use dioxus::prelude::*;
/// Should result in moves, but not removals or additions
#[test]
fn keyed_diffing_out_of_order() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let order = match generation() % 2 {
0 => &[0, 1, 2, 3, /**/ 4, 5, 6, /**/ 7, 8, 9],
1 => &[0, 1, 2, 3, /**/ 6, 4, 5, /**/ 7, 8, 9],
@ -52,7 +52,7 @@ fn keyed_diffing_out_of_order() {
/// Should result in moves only
#[test]
fn keyed_diffing_out_of_order_adds() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let order = match generation() % 2 {
0 => &[/**/ 4, 5, 6, 7, 8 /**/],
1 => &[/**/ 8, 7, 4, 5, 6 /**/],
@ -62,7 +62,7 @@ fn keyed_diffing_out_of_order_adds() {
render!(order.iter().map(|i| render!(div { key: "{i}" })))
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
assert_eq!(
@ -78,7 +78,7 @@ fn keyed_diffing_out_of_order_adds() {
/// Should result in moves only
#[test]
fn keyed_diffing_out_of_order_adds_3() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let order = match generation() % 2 {
0 => &[/**/ 4, 5, 6, 7, 8 /**/],
1 => &[/**/ 4, 8, 7, 5, 6 /**/],
@ -88,7 +88,7 @@ fn keyed_diffing_out_of_order_adds_3() {
render!(order.iter().map(|i| render!(div { key: "{i}" })))
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
assert_eq!(
@ -104,7 +104,7 @@ fn keyed_diffing_out_of_order_adds_3() {
/// Should result in moves onl
#[test]
fn keyed_diffing_out_of_order_adds_4() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let order = match generation() % 2 {
0 => &[/**/ 4, 5, 6, 7, 8 /**/],
1 => &[/**/ 4, 5, 8, 7, 6 /**/],
@ -114,7 +114,7 @@ fn keyed_diffing_out_of_order_adds_4() {
render!(order.iter().map(|i| render!(div { key: "{i}" })))
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
assert_eq!(
@ -130,7 +130,7 @@ fn keyed_diffing_out_of_order_adds_4() {
/// Should result in moves onl
#[test]
fn keyed_diffing_out_of_order_adds_5() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let order = match generation() % 2 {
0 => &[/**/ 4, 5, 6, 7, 8 /**/],
1 => &[/**/ 4, 5, 6, 8, 7 /**/],
@ -140,7 +140,7 @@ fn keyed_diffing_out_of_order_adds_5() {
render!(order.iter().map(|i| render!(div { key: "{i}" })))
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
assert_eq!(
@ -155,7 +155,7 @@ fn keyed_diffing_out_of_order_adds_5() {
/// Should result in moves onl
#[test]
fn keyed_diffing_additions() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let order: &[_] = match generation() % 2 {
0 => &[/**/ 4, 5, 6, 7, 8 /**/],
1 => &[/**/ 4, 5, 6, 7, 8, 9, 10 /**/],
@ -165,7 +165,7 @@ fn keyed_diffing_additions() {
render!(order.iter().map(|i| render!(div { key: "{i}" })))
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
assert_eq!(
@ -180,7 +180,7 @@ fn keyed_diffing_additions() {
#[test]
fn keyed_diffing_additions_and_moves_on_ends() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let order: &[_] = match generation() % 2 {
0 => &[/**/ 4, 5, 6, 7 /**/],
1 => &[/**/ 7, 4, 5, 6, 11, 12 /**/],
@ -190,7 +190,7 @@ fn keyed_diffing_additions_and_moves_on_ends() {
render!(order.iter().map(|i| render!(div { key: "{i}" })))
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
assert_eq!(
@ -209,7 +209,7 @@ fn keyed_diffing_additions_and_moves_on_ends() {
#[test]
fn keyed_diffing_additions_and_moves_in_middle() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let order: &[_] = match generation() % 2 {
0 => &[/**/ 1, 2, 3, 4 /**/],
1 => &[/**/ 4, 1, 7, 8, 2, 5, 6, 3 /**/],
@ -219,7 +219,7 @@ fn keyed_diffing_additions_and_moves_in_middle() {
render!(order.iter().map(|i| render!(div { key: "{i}" })))
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
// LIS: 4, 5, 6
dom.mark_dirty(ScopeId::ROOT);
@ -243,7 +243,7 @@ fn keyed_diffing_additions_and_moves_in_middle() {
#[test]
fn controlled_keyed_diffing_out_of_order() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let order: &[_] = match generation() % 2 {
0 => &[4, 5, 6, 7],
1 => &[0, 5, 9, 6, 4],
@ -253,7 +253,7 @@ fn controlled_keyed_diffing_out_of_order() {
render!(order.iter().map(|i| render!(div { key: "{i}" })))
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
// LIS: 5, 6
dom.mark_dirty(ScopeId::ROOT);
@ -277,7 +277,7 @@ fn controlled_keyed_diffing_out_of_order() {
#[test]
fn controlled_keyed_diffing_out_of_order_max_test() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let order: &[_] = match generation() % 2 {
0 => &[0, 1, 2, 3, 4],
1 => &[3, 0, 1, 10, 2],
@ -287,7 +287,7 @@ fn controlled_keyed_diffing_out_of_order_max_test() {
render!(order.iter().map(|i| render!(div { key: "{i}" })))
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
assert_eq!(
@ -306,7 +306,7 @@ fn controlled_keyed_diffing_out_of_order_max_test() {
// just making sure it doesnt happen in the core implementation
#[test]
fn remove_list() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let order: &[_] = match generation() % 2 {
0 => &[9, 8, 7, 6, 5],
1 => &[9, 8],
@ -316,7 +316,7 @@ fn remove_list() {
render!(order.iter().map(|i| render!(div { key: "{i}" })))
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
assert_eq!(
@ -331,7 +331,7 @@ fn remove_list() {
#[test]
fn no_common_keys() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let order: &[_] = match generation() % 2 {
0 => &[1, 2, 3],
1 => &[4, 5, 6],
@ -341,7 +341,7 @@ fn no_common_keys() {
render!(order.iter().map(|i| render!(div { key: "{i}" })))
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
assert_eq!(

View file

@ -4,7 +4,7 @@ use pretty_assertions::assert_eq;
#[test]
fn list_creates_one_by_one() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let gen = generation();
render! {
@ -73,7 +73,7 @@ fn list_creates_one_by_one() {
#[test]
fn removes_one_by_one() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let gen = 3 - generation() % 4;
render! {
@ -150,7 +150,7 @@ fn removes_one_by_one() {
#[test]
fn list_shrink_multiroot() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
render! {
div {
(0..generation()).map(|i| render! {
@ -209,7 +209,7 @@ fn list_shrink_multiroot() {
#[test]
fn removes_one_by_one_multiroot() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let gen = 3 - generation() % 4;
render! {
@ -274,7 +274,7 @@ fn removes_one_by_one_multiroot() {
#[test]
fn two_equal_fragments_are_equal_static() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
render! {
(0..5).map(|_| render! {
div { "hello" }
@ -282,13 +282,13 @@ fn two_equal_fragments_are_equal_static() {
}
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
assert!(dom.render_immediate_to_vec().edits.is_empty());
}
#[test]
fn two_equal_fragments_are_equal() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
render! {
(0..5).map(|i| render! {
div { "hello {i}" }
@ -296,13 +296,13 @@ fn two_equal_fragments_are_equal() {
}
});
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
assert!(dom.render_immediate_to_vec().edits.is_empty());
}
#[test]
fn remove_many() {
let mut dom = VirtualDom::new(|cx| {
let mut dom = VirtualDom::new(|| {
let num = match generation() % 3 {
0 => 0,
1 => 1,

View file

@ -5,7 +5,7 @@ use dioxus::prelude::*;
#[test]
fn catches_panic() {
let mut dom = VirtualDom::new(app);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
}
fn app() -> Element {

View file

@ -9,7 +9,7 @@ fn events_propagate() {
set_event_converter(Box::new(dioxus_html::SerializedHtmlEventConverter));
let mut dom = VirtualDom::new(app);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
// Top-level click is registered
dom.handle_event(

View file

@ -16,7 +16,7 @@ fn manual_diffing() {
value: Shared<&'static str>,
}
fn app(cx: Scope<AppProps>) -> Element {
fn app(cx: AppProps) -> Element {
let val = cx.value.lock().unwrap();
render! { div { "{val}" } }
};
@ -24,7 +24,7 @@ fn manual_diffing() {
let value = Arc::new(Mutex::new("Hello"));
let mut dom = VirtualDom::new_with_props(app, AppProps { value: value.clone() });
let _ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
let _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
*value.lock().unwrap() = "goodbye";
@ -56,7 +56,7 @@ fn events_generate() {
};
let mut dom = VirtualDom::new(app);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.handle_event(
"click",

View file

@ -9,7 +9,7 @@ fn miri_rollover() {
set_event_converter(Box::new(SerializedHtmlEventConverter));
let mut dom = VirtualDom::new(App);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
for _ in 0..3 {
dom.handle_event(
@ -23,7 +23,6 @@ fn miri_rollover() {
}
}
#[component]
fn App() -> Element {
let mut idx = use_signal(|| 0);
let onhover = |_| println!("go!");
@ -39,7 +38,7 @@ fn App() -> Element {
}
button { onclick: move |_| idx -= 1, "-" }
ul {
(0..**idx).map(|i| render! {
(0..*idx()).map(|i| render! {
ChildExample { i: i, onhover: onhover }
})
}
@ -48,6 +47,6 @@ fn App() -> Element {
}
#[component]
fn ChildExample<'a>(i: i32, onhover: EventHandler<'a, MouseEvent>) -> Element {
fn ChildExample(i: i32, onhover: EventHandler<MouseEvent>) -> Element {
render! { li { onmouseover: move |e| onhover.call(e), "{i}" } }
}

View file

@ -8,7 +8,7 @@ fn app_drops() {
let mut dom = VirtualDom::new(App);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
_ = dom.render_immediate_to_vec();
}
@ -26,7 +26,7 @@ fn hooks_drop() {
let mut dom = VirtualDom::new(App);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
_ = dom.render_immediate_to_vec();
}
@ -41,7 +41,6 @@ fn contexts_drop() {
}
}
#[component]
fn ChildComp() -> Element {
let el = cx.consume_context::<String>().unwrap();
@ -50,7 +49,7 @@ fn contexts_drop() {
let mut dom = VirtualDom::new(App);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
_ = dom.render_immediate_to_vec();
}
@ -67,13 +66,14 @@ fn tasks_drop() {
let mut dom = VirtualDom::new(App);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
_ = dom.render_immediate_to_vec();
}
#[test]
fn root_props_drop() {
#[derive(Clone)]
struct RootProps(String);
let mut dom = VirtualDom::new_with_props(
@ -81,7 +81,7 @@ fn root_props_drop() {
RootProps("asdasd".to_string()),
);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
_ = dom.render_immediate_to_vec();
}
@ -111,7 +111,7 @@ fn diffing_drops_old() {
}
let mut dom = VirtualDom::new(App);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.mark_dirty(ScopeId::ROOT);
_ = dom.render_immediate_to_vec();

View file

@ -59,7 +59,7 @@ fn test_memory_leak() {
let mut dom = VirtualDom::new(app);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
for _ in 0..5 {
dom.mark_dirty(ScopeId::ROOT);
@ -84,7 +84,7 @@ fn memo_works_properly() {
)
}
#[derive(PartialEq, Props)]
#[derive(PartialEq, Clone, Props)]
struct ChildProps {
na: String,
}
@ -95,7 +95,7 @@ fn memo_works_properly() {
let mut dom = VirtualDom::new(app);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
// todo!()
// dom.hard_diff(ScopeId::ROOT);
// dom.hard_diff(ScopeId::ROOT);
@ -121,13 +121,13 @@ fn free_works_on_root_hooks() {
render!(child_component { inner: name.inner.clone() })
}
fn child_component(cx: Scope<AppProps>) -> Element {
render!( div { "{cx.inner}" } )
fn child_component(props: AppProps) -> Element {
render!( div { "{props.inner}" } )
}
let ptr = Rc::new("asdasd".to_string());
let mut dom = VirtualDom::new_with_props(app, AppProps { inner: ptr.clone() });
let _ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
let _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
// ptr gets cloned into props and then into the hook
assert_eq!(Rc::strong_count(&ptr), 4);
@ -162,6 +162,7 @@ fn supports_async() {
});
});
let colors = colors();
let big = colors[0];
let mid = colors[1];
let small = colors[2];
@ -184,7 +185,7 @@ fn supports_async() {
rt.block_on(async {
let mut dom = VirtualDom::new(app);
let _ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
let _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
for _ in 0..10 {
dom.wait_for_work().await;

View file

@ -9,7 +9,7 @@ fn it_works() {
.unwrap()
.block_on(async {
let mut dom = VirtualDom::new(app);
_ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
_ = dom.rebuild(&mut dioxus_core::NoOpMutations);
dom.wait_for_suspense().await;
let out = dioxus_ssr::render(&dom);
@ -32,10 +32,10 @@ fn suspended_child() -> Element {
let mut val = use_signal(|| 0);
if *val() < 3 {
cx.spawn(async move {
spawn(async move {
val += 1;
});
cx.suspend()?;
suspend()?;
}
render!("child")

View file

@ -30,7 +30,7 @@ async fn it_works() {
let mut dom = VirtualDom::new(app);
let _ = dom.rebuild_to_vec(&mut dioxus_core::NoOpMutations);
let _ = dom.rebuild(&mut dioxus_core::NoOpMutations);
tokio::select! {
_ = dom.wait_for_work() => {}