wip: clean up some things
This commit is contained in:
1 parent
ba26b1001a
commit
3b166c9edd
64 files changed
+540
-599
No files matched your search
@@ -1,9 +1,6 @@
|
||||
# Testing of Dioxus core
|
||||
|
||||
|
||||
NodeFactory
|
||||
- [] rsx, html, NodeFactory generate the same structures
|
||||
|
||||
Diffing
|
||||
- [x] create elements
|
||||
- [x] create text
|
||||
@@ -19,15 +16,13 @@ Diffing
|
||||
- [x] keyed diffing
|
||||
- [x] keyed diffing out of order
|
||||
- [x] keyed diffing with prefix/suffix
|
||||
- [x] suspended nodes work
|
||||
- [x] suspended nodes work
|
||||
|
||||
Lifecycle
|
||||
- [] Components mount properly
|
||||
- [] Components create new child components
|
||||
- [] Replaced components unmount old components and mount new
|
||||
- [] Post-render effects are called
|
||||
- []
|
||||
|
||||
|
||||
Shared Context
|
||||
- [] Shared context propagates downwards
|
||||
@@ -37,7 +32,7 @@ Suspense
|
||||
- [] use_suspense generates suspended nodes
|
||||
|
||||
|
||||
Hooks
|
||||
Hooks
|
||||
- [] Drop order is maintained
|
||||
- [] Shared hook state is okay
|
||||
- [] use_hook works
|
||||
|
||||
@@ -23,7 +23,7 @@ fn attrs_cycle() {
|
||||
});
|
||||
|
||||
assert_eq!(
|
||||
dom.rebuild().santize().edits,
|
||||
dom.rebuild().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
|
||||
AppendChildren { m: 1 },
|
||||
@@ -32,7 +32,7 @@ fn attrs_cycle() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
|
||||
AssignId { path: &[0,], id: ElementId(3,) },
|
||||
@@ -44,7 +44,7 @@ fn attrs_cycle() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(3) },
|
||||
ReplaceWith { id: ElementId(2), m: 1 }
|
||||
@@ -53,7 +53,7 @@ fn attrs_cycle() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2) },
|
||||
AssignId { path: &[0], id: ElementId(1) },
|
||||
@@ -66,7 +66,7 @@ fn attrs_cycle() {
|
||||
// we take the node taken by attributes since we reused it
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||
ReplaceWith { id: ElementId(2), m: 1 }
|
||||
|
||||
@@ -5,7 +5,7 @@ use dioxus::prelude::*;
|
||||
fn bool_test() {
|
||||
let mut app = VirtualDom::new(|cx| cx.render(rsx!(div { hidden: false })));
|
||||
assert_eq!(
|
||||
app.rebuild().santize().edits,
|
||||
app.rebuild().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||
SetBoolAttribute { name: "hidden", value: false, id: ElementId(1,) },
|
||||
|
||||
@@ -8,7 +8,7 @@ fn test_borrowed_state() {
|
||||
let mut dom = VirtualDom::new(Parent);
|
||||
|
||||
assert_eq!(
|
||||
dom.rebuild().santize().edits,
|
||||
dom.rebuild().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
|
||||
|
||||
@@ -20,7 +20,7 @@ fn state_shares() {
|
||||
|
||||
let mut dom = VirtualDom::new(app);
|
||||
assert_eq!(
|
||||
dom.rebuild().santize().edits,
|
||||
dom.rebuild().santize().dom_edits,
|
||||
[
|
||||
CreateTextNode { value: "Value is 0", id: ElementId(1,) },
|
||||
AppendChildren { m: 1 },
|
||||
@@ -37,7 +37,7 @@ fn state_shares() {
|
||||
|
||||
dom.mark_dirty(ScopeId(2));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[SetText { value: "Value is 2", id: ElementId(1,) },]
|
||||
);
|
||||
|
||||
@@ -45,7 +45,7 @@ fn state_shares() {
|
||||
dom.mark_dirty(ScopeId(2));
|
||||
let edits = dom.render_immediate();
|
||||
assert_eq!(
|
||||
edits.santize().edits,
|
||||
edits.santize().dom_edits,
|
||||
[SetText { value: "Value is 3", id: ElementId(1,) },]
|
||||
);
|
||||
}
|
||||
@@ -23,7 +23,7 @@ fn test_original_diff() {
|
||||
|
||||
let edits = dom.rebuild().santize();
|
||||
assert_eq!(
|
||||
edits.template_mutations,
|
||||
edits.template_edits,
|
||||
[
|
||||
// create template
|
||||
CreateElement { name: "div" },
|
||||
@@ -36,7 +36,7 @@ fn test_original_diff() {
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
// add to root
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||
@@ -67,7 +67,7 @@ fn create() {
|
||||
|
||||
let edits = dom.rebuild().santize();
|
||||
assert_eq!(
|
||||
edits.template_mutations,
|
||||
edits.template_edits,
|
||||
[
|
||||
// create template
|
||||
CreateElement { name: "div" },
|
||||
@@ -99,7 +99,7 @@ fn create_list() {
|
||||
|
||||
let edits = dom.rebuild().santize();
|
||||
assert_eq!(
|
||||
edits.template_mutations,
|
||||
edits.template_edits,
|
||||
[
|
||||
// create template
|
||||
CreateElement { name: "div" },
|
||||
@@ -123,7 +123,7 @@ fn create_simple() {
|
||||
|
||||
let edits = dom.rebuild().santize();
|
||||
assert_eq!(
|
||||
edits.template_mutations,
|
||||
edits.template_edits,
|
||||
[
|
||||
// create template
|
||||
CreateElement { name: "div" },
|
||||
@@ -160,7 +160,7 @@ fn create_components() {
|
||||
|
||||
let edits = dom.rebuild().santize();
|
||||
assert_eq!(
|
||||
edits.template_mutations,
|
||||
edits.template_edits,
|
||||
[
|
||||
// The "child" template
|
||||
CreateElement { name: "h1" },
|
||||
@@ -196,7 +196,7 @@ fn anchors() {
|
||||
// note that the template under "false" doesn't show up since it's not loaded
|
||||
let edits = dom.rebuild().santize();
|
||||
assert_eq!(
|
||||
edits.template_mutations,
|
||||
edits.template_edits,
|
||||
[
|
||||
// create each template
|
||||
CreateElement { name: "div" },
|
||||
@@ -207,7 +207,7 @@ fn anchors() {
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||
CreatePlaceholder { id: ElementId(2) },
|
||||
|
||||
@@ -12,7 +12,7 @@ fn multiroot() {
|
||||
});
|
||||
|
||||
assert_eq!(
|
||||
dom.rebuild().santize().template_mutations,
|
||||
dom.rebuild().santize().template_edits,
|
||||
[
|
||||
CreateElement { name: "div" },
|
||||
CreateStaticText { value: "Hello a" },
|
||||
|
||||
@@ -14,7 +14,7 @@ fn empty_fragment_creates_nothing() {
|
||||
let edits = vdom.rebuild();
|
||||
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
CreatePlaceholder { id: ElementId(1) },
|
||||
AppendChildren { m: 1 }
|
||||
@@ -32,7 +32,7 @@ fn root_fragments_work() {
|
||||
});
|
||||
|
||||
assert_eq!(
|
||||
vdom.rebuild().edits.last().unwrap(),
|
||||
vdom.rebuild().dom_edits.last().unwrap(),
|
||||
&AppendChildren { m: 2 }
|
||||
);
|
||||
}
|
||||
@@ -59,7 +59,7 @@ fn fragments_nested() {
|
||||
});
|
||||
|
||||
assert_eq!(
|
||||
vdom.rebuild().edits.last().unwrap(),
|
||||
vdom.rebuild().dom_edits.last().unwrap(),
|
||||
&AppendChildren { m: 8 }
|
||||
);
|
||||
}
|
||||
@@ -84,7 +84,7 @@ fn fragments_across_components() {
|
||||
}
|
||||
|
||||
assert_eq!(
|
||||
VirtualDom::new(app).rebuild().edits.last().unwrap(),
|
||||
VirtualDom::new(app).rebuild().dom_edits.last().unwrap(),
|
||||
&AppendChildren { m: 8 }
|
||||
);
|
||||
}
|
||||
@@ -98,7 +98,7 @@ fn list_fragments() {
|
||||
))
|
||||
}
|
||||
assert_eq!(
|
||||
VirtualDom::new(app).rebuild().edits.last().unwrap(),
|
||||
VirtualDom::new(app).rebuild().dom_edits.last().unwrap(),
|
||||
&AppendChildren { m: 7 }
|
||||
);
|
||||
}
|
||||
@@ -28,7 +28,7 @@ fn list_renders() {
|
||||
let edits = dom.rebuild().santize();
|
||||
|
||||
assert_eq!(
|
||||
edits.template_mutations,
|
||||
edits.template_edits,
|
||||
[
|
||||
// Create the outer div
|
||||
CreateElement { name: "div" },
|
||||
@@ -51,7 +51,7 @@ fn list_renders() {
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
// Load the outer div
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||
|
||||
@@ -26,7 +26,7 @@ fn nested_passthru_creates() {
|
||||
let edits = dom.rebuild().santize();
|
||||
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||
AppendChildren { m: 1 },
|
||||
@@ -64,7 +64,7 @@ fn nested_passthru_creates_add() {
|
||||
let mut dom = VirtualDom::new(app);
|
||||
|
||||
assert_eq!(
|
||||
dom.rebuild().santize().edits,
|
||||
dom.rebuild().santize().dom_edits,
|
||||
[
|
||||
// load 1
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||
@@ -92,11 +92,11 @@ fn dynamic_node_as_root() {
|
||||
let edits = dom.rebuild().santize();
|
||||
|
||||
// Since the roots were all dynamic, they should not cause any template muations
|
||||
assert_eq!(edits.template_mutations, []);
|
||||
assert_eq!(edits.template_edits, []);
|
||||
|
||||
// The root node is text, so we just create it on the spot
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
CreateTextNode { value: "123", id: ElementId(1) },
|
||||
CreateTextNode { value: "456", id: ElementId(2) },
|
||||
|
||||
@@ -14,7 +14,7 @@ fn cycling_elements() {
|
||||
|
||||
let edits = dom.rebuild().santize();
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
|
||||
AppendChildren { m: 1 },
|
||||
@@ -23,7 +23,7 @@ fn cycling_elements() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
|
||||
ReplaceWith { id: ElementId(1,), m: 1 },
|
||||
@@ -33,7 +33,7 @@ fn cycling_elements() {
|
||||
// notice that the IDs cycle back to ElementId(1), preserving a minimal memory footprint
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
|
||||
ReplaceWith { id: ElementId(2,), m: 1 },
|
||||
@@ -42,7 +42,7 @@ fn cycling_elements() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
|
||||
ReplaceWith { id: ElementId(1,), m: 1 },
|
||||
|
||||
@@ -61,7 +61,7 @@ fn component_swap() {
|
||||
let mut dom = VirtualDom::new(app);
|
||||
let edits = dom.rebuild().santize();
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2) },
|
||||
@@ -75,7 +75,7 @@ fn component_swap() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(6) },
|
||||
ReplaceWith { id: ElementId(5), m: 1 }
|
||||
@@ -84,7 +84,7 @@ fn component_swap() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(5) },
|
||||
ReplaceWith { id: ElementId(6), m: 1 }
|
||||
@@ -93,7 +93,7 @@ fn component_swap() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(6) },
|
||||
ReplaceWith { id: ElementId(5), m: 1 }
|
||||
|
||||
@@ -14,19 +14,19 @@ fn text_diff() {
|
||||
|
||||
vdom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
vdom.render_immediate().edits,
|
||||
vdom.render_immediate().dom_edits,
|
||||
[SetText { value: "hello 1", id: ElementId(2) }]
|
||||
);
|
||||
|
||||
vdom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
vdom.render_immediate().edits,
|
||||
vdom.render_immediate().dom_edits,
|
||||
[SetText { value: "hello 2", id: ElementId(2) }]
|
||||
);
|
||||
|
||||
vdom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
vdom.render_immediate().edits,
|
||||
vdom.render_immediate().dom_edits,
|
||||
[SetText { value: "hello 3", id: ElementId(2) }]
|
||||
);
|
||||
}
|
||||
@@ -48,7 +48,7 @@ fn element_swap() {
|
||||
|
||||
vdom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
vdom.render_immediate().santize().edits,
|
||||
vdom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
|
||||
ReplaceWith { id: ElementId(1,), m: 1 },
|
||||
@@ -57,7 +57,7 @@ fn element_swap() {
|
||||
|
||||
vdom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
vdom.render_immediate().santize().edits,
|
||||
vdom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
|
||||
ReplaceWith { id: ElementId(2,), m: 1 },
|
||||
@@ -66,7 +66,7 @@ fn element_swap() {
|
||||
|
||||
vdom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
vdom.render_immediate().santize().edits,
|
||||
vdom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
|
||||
ReplaceWith { id: ElementId(1,), m: 1 },
|
||||
@@ -75,7 +75,7 @@ fn element_swap() {
|
||||
|
||||
vdom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
vdom.render_immediate().santize().edits,
|
||||
vdom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
|
||||
ReplaceWith { id: ElementId(2,), m: 1 },
|
||||
|
||||
@@ -21,7 +21,7 @@ fn keyed_diffing_out_of_order() {
|
||||
});
|
||||
|
||||
assert_eq!(
|
||||
dom.rebuild().santize().edits,
|
||||
dom.rebuild().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
|
||||
@@ -39,7 +39,7 @@ fn keyed_diffing_out_of_order() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().edits,
|
||||
dom.render_immediate().dom_edits,
|
||||
[
|
||||
PushRoot { id: ElementId(7,) },
|
||||
InsertBefore { id: ElementId(5,), m: 1 },
|
||||
@@ -64,7 +64,7 @@ fn keyed_diffing_out_of_order_adds() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().edits,
|
||||
dom.render_immediate().dom_edits,
|
||||
[
|
||||
PushRoot { id: ElementId(5,) },
|
||||
PushRoot { id: ElementId(4,) },
|
||||
@@ -90,7 +90,7 @@ fn keyed_diffing_out_of_order_adds_3() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().edits,
|
||||
dom.render_immediate().dom_edits,
|
||||
[
|
||||
PushRoot { id: ElementId(5,) },
|
||||
PushRoot { id: ElementId(4,) },
|
||||
@@ -116,7 +116,7 @@ fn keyed_diffing_out_of_order_adds_4() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().edits,
|
||||
dom.render_immediate().dom_edits,
|
||||
[
|
||||
PushRoot { id: ElementId(5,) },
|
||||
PushRoot { id: ElementId(4,) },
|
||||
@@ -142,7 +142,7 @@ fn keyed_diffing_out_of_order_adds_5() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().edits,
|
||||
dom.render_immediate().dom_edits,
|
||||
[
|
||||
PushRoot { id: ElementId(5,) },
|
||||
InsertBefore { id: ElementId(4,), m: 1 },
|
||||
@@ -167,7 +167,7 @@ fn keyed_diffing_additions() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(6) },
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(7) },
|
||||
@@ -192,7 +192,7 @@ fn keyed_diffing_additions_and_moves_on_ends() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
// create 11, 12
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(5) },
|
||||
@@ -222,7 +222,7 @@ fn keyed_diffing_additions_and_moves_in_middle() {
|
||||
// LIS: 4, 5, 6
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
// create 5, 6
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(5) },
|
||||
@@ -256,7 +256,7 @@ fn controlled_keyed_diffing_out_of_order() {
|
||||
// LIS: 5, 6
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
// remove 7
|
||||
Remove { id: ElementId(4,) },
|
||||
@@ -289,7 +289,7 @@ fn controlled_keyed_diffing_out_of_order_max_test() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
Remove { id: ElementId(5,) },
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(5) },
|
||||
@@ -318,7 +318,7 @@ fn remove_list() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
Remove { id: ElementId(3) },
|
||||
Remove { id: ElementId(4) },
|
||||
@@ -343,7 +343,7 @@ fn no_common_keys() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
Remove { id: ElementId(2) },
|
||||
Remove { id: ElementId(3) },
|
||||
|
||||
@@ -17,7 +17,7 @@ fn list_creates_one_by_one() {
|
||||
|
||||
// load the div and then assign the empty fragment as a placeholder
|
||||
assert_eq!(
|
||||
dom.rebuild().santize().edits,
|
||||
dom.rebuild().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
|
||||
AssignId { path: &[0], id: ElementId(2,) },
|
||||
@@ -28,7 +28,7 @@ fn list_creates_one_by_one() {
|
||||
// Rendering the first item should replace the placeholder with an element
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(3,) },
|
||||
HydrateText { path: &[0], value: "0", id: ElementId(4,) },
|
||||
@@ -39,7 +39,7 @@ fn list_creates_one_by_one() {
|
||||
// Rendering the next item should insert after the previous
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
|
||||
HydrateText { path: &[0], value: "1", id: ElementId(5,) },
|
||||
@@ -50,7 +50,7 @@ fn list_creates_one_by_one() {
|
||||
// ... and again!
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(6,) },
|
||||
HydrateText { path: &[0], value: "2", id: ElementId(7,) },
|
||||
@@ -61,7 +61,7 @@ fn list_creates_one_by_one() {
|
||||
// once more
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(8,) },
|
||||
HydrateText { path: &[0], value: "3", id: ElementId(9,) },
|
||||
@@ -86,7 +86,7 @@ fn removes_one_by_one() {
|
||||
|
||||
// load the div and then assign the empty fragment as a placeholder
|
||||
assert_eq!(
|
||||
dom.rebuild().santize().edits,
|
||||
dom.rebuild().santize().dom_edits,
|
||||
[
|
||||
// The container
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||
@@ -108,14 +108,14 @@ fn removes_one_by_one() {
|
||||
// Rendering the first item should replace the placeholder with an element
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[Remove { id: ElementId(6) }]
|
||||
);
|
||||
|
||||
// Remove div(2)
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[Remove { id: ElementId(4) }]
|
||||
);
|
||||
|
||||
@@ -123,7 +123,7 @@ fn removes_one_by_one() {
|
||||
// todo: this should just be a remove with no placeholder
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
CreatePlaceholder { id: ElementId(3) },
|
||||
ReplaceWith { id: ElementId(2), m: 1 }
|
||||
@@ -134,7 +134,7 @@ fn removes_one_by_one() {
|
||||
// todo: this should actually be append to, but replace placeholder is fine for now
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2) },
|
||||
HydrateText { path: &[0], value: "0", id: ElementId(4) },
|
||||
@@ -161,7 +161,7 @@ fn list_shrink_multiroot() {
|
||||
});
|
||||
|
||||
assert_eq!(
|
||||
dom.rebuild().santize().edits,
|
||||
dom.rebuild().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
|
||||
AssignId { path: &[0,], id: ElementId(2,) },
|
||||
@@ -171,7 +171,7 @@ fn list_shrink_multiroot() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(3) },
|
||||
HydrateText { path: &[0], value: "0", id: ElementId(4) },
|
||||
@@ -183,7 +183,7 @@ fn list_shrink_multiroot() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2) },
|
||||
HydrateText { path: &[0], value: "1", id: ElementId(7) },
|
||||
@@ -195,7 +195,7 @@ fn list_shrink_multiroot() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(10) },
|
||||
HydrateText { path: &[0], value: "2", id: ElementId(11) },
|
||||
@@ -223,7 +223,7 @@ fn removes_one_by_one_multiroot() {
|
||||
|
||||
// load the div and then assign the empty fragment as a placeholder
|
||||
assert_eq!(
|
||||
dom.rebuild().santize().edits,
|
||||
dom.rebuild().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||
//
|
||||
@@ -250,19 +250,19 @@ fn removes_one_by_one_multiroot() {
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[Remove { id: ElementId(10) }, Remove { id: ElementId(12) }]
|
||||
);
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[Remove { id: ElementId(6) }, Remove { id: ElementId(8) }]
|
||||
);
|
||||
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
assert_eq!(
|
||||
dom.render_immediate().santize().edits,
|
||||
dom.render_immediate().santize().dom_edits,
|
||||
[
|
||||
Remove { id: ElementId(4) },
|
||||
CreatePlaceholder { id: ElementId(5) },
|
||||
@@ -282,7 +282,7 @@ fn two_equal_fragments_are_equal_static() {
|
||||
});
|
||||
|
||||
_ = dom.rebuild();
|
||||
assert!(dom.render_immediate().edits.is_empty());
|
||||
assert!(dom.render_immediate().dom_edits.is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -296,7 +296,7 @@ fn two_equal_fragments_are_equal() {
|
||||
});
|
||||
|
||||
_ = dom.rebuild();
|
||||
assert!(dom.render_immediate().edits.is_empty());
|
||||
assert!(dom.render_immediate().dom_edits.is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -315,9 +315,9 @@ fn remove_many() {
|
||||
});
|
||||
|
||||
let edits = dom.rebuild().santize();
|
||||
assert!(edits.template_mutations.is_empty());
|
||||
assert!(edits.template_edits.is_empty());
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
CreatePlaceholder { id: ElementId(1,) },
|
||||
AppendChildren { m: 1 },
|
||||
@@ -327,7 +327,7 @@ fn remove_many() {
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
let edits = dom.render_immediate().santize();
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
|
||||
HydrateText { path: &[0,], value: "hello 0", id: ElementId(3,) },
|
||||
@@ -338,7 +338,7 @@ fn remove_many() {
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
let edits = dom.render_immediate().santize();
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
|
||||
HydrateText { path: &[0,], value: "hello 1", id: ElementId(4,) },
|
||||
@@ -355,7 +355,7 @@ fn remove_many() {
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
let edits = dom.render_immediate().santize();
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
Remove { id: ElementId(1,) },
|
||||
Remove { id: ElementId(5,) },
|
||||
@@ -369,7 +369,7 @@ fn remove_many() {
|
||||
dom.mark_dirty(ScopeId(0));
|
||||
let edits = dom.render_immediate().santize();
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
|
||||
HydrateText { path: &[0,], value: "hello 0", id: ElementId(10,) },
|
||||
|
||||
@@ -30,7 +30,7 @@ fn dual_stream() {
|
||||
|
||||
use Mutation::*;
|
||||
assert_eq!(
|
||||
edits.template_mutations,
|
||||
edits.template_edits,
|
||||
[
|
||||
CreateElement { name: "div" },
|
||||
SetStaticAttribute { name: "class", value: "asd", ns: None },
|
||||
@@ -66,7 +66,7 @@ fn dual_stream() {
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||
SetAttribute { name: "class", value: "123", id: ElementId(1), ns: None },
|
||||
|
||||
@@ -28,7 +28,7 @@ fn manual_diffing() {
|
||||
*value.lock().unwrap() = "goodbye";
|
||||
|
||||
assert_eq!(
|
||||
dom.rebuild().santize().edits,
|
||||
dom.rebuild().santize().dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(3) },
|
||||
HydrateText { path: &[0], value: "goodbye", id: ElementId(4) },
|
||||
@@ -62,7 +62,7 @@ fn events_generate() {
|
||||
let edits = dom.render_immediate();
|
||||
|
||||
assert_eq!(
|
||||
edits.edits,
|
||||
edits.dom_edits,
|
||||
[
|
||||
CreatePlaceholder { id: ElementId(2) },
|
||||
ReplaceWith { id: ElementId(1), m: 1 }
|
||||
|
||||
@@ -13,7 +13,7 @@ async fn it_works() {
|
||||
|
||||
// We should at least get the top-level template in before pausing for the children
|
||||
assert_eq!(
|
||||
mutations.template_mutations,
|
||||
mutations.template_edits,
|
||||
[
|
||||
CreateElement { name: "div" },
|
||||
CreateStaticText { value: "Waiting for child..." },
|
||||
@@ -25,7 +25,7 @@ async fn it_works() {
|
||||
|
||||
// And we should load it in and assign the placeholder properly
|
||||
assert_eq!(
|
||||
mutations.edits,
|
||||
mutations.dom_edits,
|
||||
[
|
||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||
// hmmmmmmmmm.... with suspense how do we guarantee that IDs increase linearly?
|
||||
|
||||
Reference in new issue
Block a user