fix: node reclaimation

This commit is contained in:
Jonathan Kelley committed 2022-11-25 02:12:29 -05:00
1 parent 5713e13ff2
commit bffb2644a3
6 files changed
+129 -125

No files matched your search

+5 -5
View File
@@ -59,7 +59,7 @@ fn element_swap() {
assert_eq!(
vdom.render_immediate().santize().edits,
[
LoadTemplate { name: "template", index: 0, id: ElementId(3,) },
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
ReplaceWith { id: ElementId(2,), m: 1 },
]
);
@@ -68,8 +68,8 @@ fn element_swap() {
assert_eq!(
vdom.render_immediate().santize().edits,
[
LoadTemplate { name: "template", index: 0, id: ElementId(4,) },
ReplaceWith { id: ElementId(3,), m: 1 },
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
ReplaceWith { id: ElementId(1,), m: 1 },
]
);
@@ -77,8 +77,8 @@ fn element_swap() {
assert_eq!(
vdom.render_immediate().santize().edits,
[
LoadTemplate { name: "template", index: 0, id: ElementId(5,) },
ReplaceWith { id: ElementId(4,), m: 1 },
LoadTemplate { name: "template", index: 0, id: ElementId(1,) },
ReplaceWith { id: ElementId(2,), m: 1 },
]
);
}
+27 -28
View File
@@ -41,8 +41,8 @@ fn list_creates_one_by_one() {
assert_eq!(
dom.render_immediate().santize().edits,
[
LoadTemplate { name: "template", index: 0, id: ElementId(5,) },
HydrateText { path: &[0], value: "1", id: ElementId(6,) },
LoadTemplate { name: "template", index: 0, id: ElementId(2,) },
HydrateText { path: &[0], value: "1", id: ElementId(5,) },
InsertAfter { id: ElementId(3,), m: 1 },
]
);
@@ -52,9 +52,9 @@ fn list_creates_one_by_one() {
assert_eq!(
dom.render_immediate().santize().edits,
[
LoadTemplate { name: "template", index: 0, id: ElementId(7,) },
HydrateText { path: &[0], value: "2", id: ElementId(8,) },
InsertAfter { id: ElementId(5,), m: 1 },
LoadTemplate { name: "template", index: 0, id: ElementId(6,) },
HydrateText { path: &[0], value: "2", id: ElementId(7,) },
InsertAfter { id: ElementId(2,), m: 1 },
]
);
@@ -63,9 +63,9 @@ fn list_creates_one_by_one() {
assert_eq!(
dom.render_immediate().santize().edits,
[
LoadTemplate { name: "template", index: 0, id: ElementId(9,) },
HydrateText { path: &[0], value: "3", id: ElementId(10,) },
InsertAfter { id: ElementId(7,), m: 1 },
LoadTemplate { name: "template", index: 0, id: ElementId(8,) },
HydrateText { path: &[0], value: "3", id: ElementId(9,) },
InsertAfter { id: ElementId(6,), m: 1 },
]
);
}
@@ -125,7 +125,7 @@ fn removes_one_by_one() {
assert_eq!(
dom.render_immediate().santize().edits,
[
CreatePlaceholder { id: ElementId(8) },
CreatePlaceholder { id: ElementId(3) },
ReplaceWith { id: ElementId(2), m: 1 }
]
);
@@ -136,13 +136,13 @@ fn removes_one_by_one() {
assert_eq!(
dom.render_immediate().santize().edits,
[
LoadTemplate { name: "template", index: 0, id: ElementId(9) },
HydrateText { path: &[0], value: "0", id: ElementId(10) },
LoadTemplate { name: "template", index: 0, id: ElementId(11) },
HydrateText { path: &[0], value: "1", id: ElementId(12) },
LoadTemplate { name: "template", index: 0, id: ElementId(13) },
HydrateText { path: &[0], value: "2", id: ElementId(14) },
ReplaceWith { id: ElementId(8), m: 3 }
LoadTemplate { name: "template", index: 0, id: ElementId(2) },
HydrateText { path: &[0], value: "0", id: ElementId(4) },
LoadTemplate { name: "template", index: 0, id: ElementId(5) },
HydrateText { path: &[0], value: "1", id: ElementId(6) },
LoadTemplate { name: "template", index: 0, id: ElementId(7) },
HydrateText { path: &[0], value: "2", id: ElementId(8) },
ReplaceWith { id: ElementId(3), m: 3 }
]
);
}
@@ -150,10 +150,9 @@ fn removes_one_by_one() {
#[test]
fn list_shrink_multiroot() {
let mut dom = VirtualDom::new(|cx| {
let gen = cx.generation();
cx.render(rsx! {
div {
(0..gen).map(|i| rsx! {
(0..cx.generation()).map(|i| rsx! {
div { "{i}" }
div { "{i}" }
})
@@ -186,10 +185,10 @@ fn list_shrink_multiroot() {
assert_eq!(
dom.render_immediate().santize().edits,
[
LoadTemplate { name: "template", index: 0, id: ElementId(7) },
HydrateText { path: &[0], value: "1", id: ElementId(8) },
LoadTemplate { name: "template", index: 1, id: ElementId(9) },
HydrateText { path: &[0], value: "1", id: ElementId(10) },
LoadTemplate { name: "template", index: 0, id: ElementId(2) },
HydrateText { path: &[0], value: "1", id: ElementId(7) },
LoadTemplate { name: "template", index: 1, id: ElementId(8) },
HydrateText { path: &[0], value: "1", id: ElementId(9) },
InsertAfter { id: ElementId(5), m: 2 }
]
);
@@ -198,11 +197,11 @@ fn list_shrink_multiroot() {
assert_eq!(
dom.render_immediate().santize().edits,
[
LoadTemplate { name: "template", index: 0, id: ElementId(11) },
HydrateText { path: &[0], value: "2", id: ElementId(12) },
LoadTemplate { name: "template", index: 1, id: ElementId(13) },
HydrateText { path: &[0], value: "2", id: ElementId(14) },
InsertAfter { id: ElementId(9), m: 2 }
LoadTemplate { name: "template", index: 0, id: ElementId(10) },
HydrateText { path: &[0], value: "2", id: ElementId(11) },
LoadTemplate { name: "template", index: 1, id: ElementId(12) },
HydrateText { path: &[0], value: "2", id: ElementId(13) },
InsertAfter { id: ElementId(8), m: 2 }
]
);
}
@@ -266,7 +265,7 @@ fn removes_one_by_one_multiroot() {
dom.render_immediate().santize().edits,
[
Remove { id: ElementId(4) },
CreatePlaceholder { id: ElementId(14) },
CreatePlaceholder { id: ElementId(5) },
ReplaceWith { id: ElementId(2), m: 1 }
]
);