mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
[IMP] components: rename onRender->onWillRender, add onRendered
This commit is contained in:
committed by
Aaron Bohy
parent
a400fc5e69
commit
629b379ea9
@@ -112,16 +112,20 @@ test("destroying/recreating a subwidget with different props (if start is not ov
|
||||
expect(steps).toEqual([
|
||||
"W:setup",
|
||||
"W:willStart",
|
||||
"W:render",
|
||||
"W:willRender",
|
||||
"W:rendered",
|
||||
"W:mounted",
|
||||
"W:render",
|
||||
"W:willRender",
|
||||
"Child:setup",
|
||||
"Child:willStart",
|
||||
"W:render",
|
||||
"W:rendered",
|
||||
"W:willRender",
|
||||
"Child:destroyed",
|
||||
"Child:setup",
|
||||
"Child:willStart",
|
||||
"Child:render",
|
||||
"W:rendered",
|
||||
"Child:willRender",
|
||||
"Child:rendered",
|
||||
"W:willPatch",
|
||||
"Child:mounted",
|
||||
"W:patched",
|
||||
@@ -189,19 +193,24 @@ test("creating two async components, scenario 1", async () => {
|
||||
expect(steps).toEqual([
|
||||
"Parent:setup",
|
||||
"Parent:willStart",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Parent:rendered",
|
||||
"Parent:mounted",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"ChildA:setup",
|
||||
"ChildA:willStart",
|
||||
"Parent:render",
|
||||
"Parent:rendered",
|
||||
"Parent:willRender",
|
||||
"ChildA:destroyed",
|
||||
"ChildA:setup",
|
||||
"ChildA:willStart",
|
||||
"ChildB:setup",
|
||||
"ChildB:willStart",
|
||||
"ChildB:render",
|
||||
"ChildA:render",
|
||||
"Parent:rendered",
|
||||
"ChildB:willRender",
|
||||
"ChildB:rendered",
|
||||
"ChildA:willRender",
|
||||
"ChildA:rendered",
|
||||
"Parent:willPatch",
|
||||
"ChildB:mounted",
|
||||
"ChildA:mounted",
|
||||
@@ -263,20 +272,26 @@ test("creating two async components, scenario 2", async () => {
|
||||
expect(steps).toEqual([
|
||||
"Parent:setup",
|
||||
"Parent:willStart",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"ChildA:setup",
|
||||
"ChildA:willStart",
|
||||
"ChildA:render",
|
||||
"Parent:rendered",
|
||||
"ChildA:willRender",
|
||||
"ChildA:rendered",
|
||||
"ChildA:mounted",
|
||||
"Parent:mounted",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"ChildA:willUpdateProps",
|
||||
"Parent:render",
|
||||
"Parent:rendered",
|
||||
"Parent:willRender",
|
||||
"ChildA:willUpdateProps",
|
||||
"ChildB:setup",
|
||||
"ChildB:willStart",
|
||||
"ChildB:render",
|
||||
"ChildA:render",
|
||||
"Parent:rendered",
|
||||
"ChildB:willRender",
|
||||
"ChildB:rendered",
|
||||
"ChildA:willRender",
|
||||
"ChildA:rendered",
|
||||
"Parent:willPatch",
|
||||
"ChildA:willPatch",
|
||||
"ChildB:mounted",
|
||||
@@ -336,20 +351,26 @@ test("creating two async components, scenario 3 (patching in the same frame)", a
|
||||
expect(steps).toEqual([
|
||||
"Parent:setup",
|
||||
"Parent:willStart",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"ChildA:setup",
|
||||
"ChildA:willStart",
|
||||
"ChildA:render",
|
||||
"Parent:rendered",
|
||||
"ChildA:willRender",
|
||||
"ChildA:rendered",
|
||||
"ChildA:mounted",
|
||||
"Parent:mounted",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"ChildA:willUpdateProps",
|
||||
"Parent:render",
|
||||
"Parent:rendered",
|
||||
"Parent:willRender",
|
||||
"ChildA:willUpdateProps",
|
||||
"ChildB:setup",
|
||||
"ChildB:willStart",
|
||||
"ChildB:render",
|
||||
"ChildA:render",
|
||||
"Parent:rendered",
|
||||
"ChildB:willRender",
|
||||
"ChildB:rendered",
|
||||
"ChildA:willRender",
|
||||
"ChildA:rendered",
|
||||
"Parent:willPatch",
|
||||
"ChildA:willPatch",
|
||||
"ChildB:mounted",
|
||||
@@ -396,17 +417,22 @@ test("update a sub-component twice in the same frame", async () => {
|
||||
expect(steps).toEqual([
|
||||
"Parent:setup",
|
||||
"Parent:willStart",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"ChildA:setup",
|
||||
"ChildA:willStart",
|
||||
"ChildA:render",
|
||||
"Parent:rendered",
|
||||
"ChildA:willRender",
|
||||
"ChildA:rendered",
|
||||
"ChildA:mounted",
|
||||
"Parent:mounted",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"ChildA:willUpdateProps",
|
||||
"Parent:render",
|
||||
"Parent:rendered",
|
||||
"Parent:willRender",
|
||||
"ChildA:willUpdateProps",
|
||||
"ChildA:render",
|
||||
"Parent:rendered",
|
||||
"ChildA:willRender",
|
||||
"ChildA:rendered",
|
||||
"Parent:willPatch",
|
||||
"ChildA:willPatch",
|
||||
"ChildA:patched",
|
||||
@@ -447,15 +473,18 @@ test("update a sub-component twice in the same frame, 2", async () => {
|
||||
expect(steps.splice(0)).toEqual([
|
||||
"Parent:setup",
|
||||
"Parent:willStart",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"ChildA:setup",
|
||||
"ChildA:willStart",
|
||||
"ChildA:render",
|
||||
"Parent:rendered",
|
||||
"ChildA:willRender",
|
||||
"render",
|
||||
"ChildA:rendered",
|
||||
"ChildA:mounted",
|
||||
"Parent:mounted",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"ChildA:willUpdateProps",
|
||||
"Parent:rendered",
|
||||
]);
|
||||
await nextMicroTick();
|
||||
// For an unknown reason, this test fails on windows without the next microtick. It works
|
||||
@@ -463,22 +492,27 @@ test("update a sub-component twice in the same frame, 2", async () => {
|
||||
// I do not see anything harmful in waiting an extra tick. But it is annoying to not
|
||||
// know what is different.
|
||||
await nextMicroTick();
|
||||
expect(steps.splice(0)).toEqual(["ChildA:render", "render"]);
|
||||
expect(steps.splice(0)).toEqual(["ChildA:willRender", "render", "ChildA:rendered"]);
|
||||
expect(fixture.innerHTML).toBe("<div><span>1</span></div>");
|
||||
parent.state.valA = 3;
|
||||
await nextMicroTick();
|
||||
await nextMicroTick();
|
||||
expect(steps.splice(0)).toEqual(["Parent:render", "ChildA:willUpdateProps"]);
|
||||
expect(steps.splice(0)).toEqual([
|
||||
"Parent:willRender",
|
||||
"ChildA:willUpdateProps",
|
||||
"Parent:rendered",
|
||||
]);
|
||||
await nextMicroTick();
|
||||
// same as above
|
||||
await nextMicroTick();
|
||||
expect(steps).toEqual(["ChildA:render", "render"]);
|
||||
expect(steps).toEqual(["ChildA:willRender", "render", "ChildA:rendered"]);
|
||||
expect(fixture.innerHTML).toBe("<div><span>1</span></div>");
|
||||
await nextTick();
|
||||
expect(fixture.innerHTML).toBe("<div><span>3</span></div>");
|
||||
expect(steps).toEqual([
|
||||
"ChildA:render",
|
||||
"ChildA:willRender",
|
||||
"render",
|
||||
"ChildA:rendered",
|
||||
"Parent:willPatch",
|
||||
"ChildA:willPatch",
|
||||
"ChildA:patched",
|
||||
@@ -548,21 +582,27 @@ test("properly behave when destroyed/unmounted while rendering ", async () => {
|
||||
expect(steps).toEqual([
|
||||
"Parent:setup",
|
||||
"Parent:willStart",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Child:setup",
|
||||
"Child:willStart",
|
||||
"Child:render",
|
||||
"Parent:rendered",
|
||||
"Child:willRender",
|
||||
"SubChild:setup",
|
||||
"SubChild:willStart",
|
||||
"SubChild:render",
|
||||
"Child:rendered",
|
||||
"SubChild:willRender",
|
||||
"SubChild:rendered",
|
||||
"SubChild:mounted",
|
||||
"Child:mounted",
|
||||
"Parent:mounted",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Child:willUpdateProps",
|
||||
"Child:render",
|
||||
"Parent:rendered",
|
||||
"Child:willRender",
|
||||
"SubChild:willUpdateProps",
|
||||
"Parent:render",
|
||||
"Child:rendered",
|
||||
"Parent:willRender",
|
||||
"Parent:rendered",
|
||||
"Parent:willPatch",
|
||||
"Child:willUnmount",
|
||||
"SubChild:willUnmount",
|
||||
@@ -612,16 +652,20 @@ test("rendering component again in next microtick", async () => {
|
||||
expect(steps).toEqual([
|
||||
"Parent:setup",
|
||||
"Parent:willStart",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Parent:rendered",
|
||||
"Parent:mounted",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Child:setup",
|
||||
"Child:willStart",
|
||||
"Parent:render",
|
||||
"Parent:rendered",
|
||||
"Parent:willRender",
|
||||
"Child:destroyed",
|
||||
"Child:setup",
|
||||
"Child:willStart",
|
||||
"Child:render",
|
||||
"Parent:rendered",
|
||||
"Child:willRender",
|
||||
"Child:rendered",
|
||||
"Parent:willPatch",
|
||||
"Child:mounted",
|
||||
"Parent:patched",
|
||||
@@ -689,23 +733,30 @@ test("concurrent renderings scenario 1", async () => {
|
||||
expect(steps).toEqual([
|
||||
"ComponentA:setup",
|
||||
"ComponentA:willStart",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:setup",
|
||||
"ComponentB:willStart",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:setup",
|
||||
"ComponentC:willStart",
|
||||
"ComponentC:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentC:rendered",
|
||||
"ComponentC:mounted",
|
||||
"ComponentB:mounted",
|
||||
"ComponentA:mounted",
|
||||
"ComponentB:render",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:willUpdateProps",
|
||||
"ComponentA:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:willUpdateProps",
|
||||
"ComponentC:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentC:rendered",
|
||||
"ComponentA:willPatch",
|
||||
"ComponentB:willPatch",
|
||||
"ComponentC:willPatch",
|
||||
@@ -774,23 +825,30 @@ test("concurrent renderings scenario 2", async () => {
|
||||
expect(steps).toEqual([
|
||||
"ComponentA:setup",
|
||||
"ComponentA:willStart",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:setup",
|
||||
"ComponentB:willStart",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:setup",
|
||||
"ComponentC:willStart",
|
||||
"ComponentC:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentC:rendered",
|
||||
"ComponentC:mounted",
|
||||
"ComponentB:mounted",
|
||||
"ComponentA:mounted",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:willUpdateProps",
|
||||
"ComponentB:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:willUpdateProps",
|
||||
"ComponentC:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentC:rendered",
|
||||
"ComponentA:willPatch",
|
||||
"ComponentB:willPatch",
|
||||
"ComponentC:willPatch",
|
||||
@@ -858,23 +916,30 @@ test("concurrent renderings scenario 2bis", async () => {
|
||||
expect(steps).toEqual([
|
||||
"ComponentA:setup",
|
||||
"ComponentA:willStart",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:setup",
|
||||
"ComponentB:willStart",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:setup",
|
||||
"ComponentC:willStart",
|
||||
"ComponentC:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentC:rendered",
|
||||
"ComponentC:mounted",
|
||||
"ComponentB:mounted",
|
||||
"ComponentA:mounted",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:willUpdateProps",
|
||||
"ComponentB:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:willUpdateProps",
|
||||
"ComponentC:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentC:rendered",
|
||||
"ComponentA:willPatch",
|
||||
"ComponentB:willPatch",
|
||||
"ComponentC:willPatch",
|
||||
@@ -964,29 +1029,38 @@ test("concurrent renderings scenario 3", async () => {
|
||||
expect(steps).toEqual([
|
||||
"ComponentA:setup",
|
||||
"ComponentA:willStart",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:setup",
|
||||
"ComponentB:willStart",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:setup",
|
||||
"ComponentC:willStart",
|
||||
"ComponentC:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentD:setup",
|
||||
"ComponentD:willStart",
|
||||
"ComponentD:render",
|
||||
"ComponentC:rendered",
|
||||
"ComponentD:willRender",
|
||||
"ComponentD:rendered",
|
||||
"ComponentD:mounted",
|
||||
"ComponentC:mounted",
|
||||
"ComponentB:mounted",
|
||||
"ComponentA:mounted",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentC:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentD:willUpdateProps",
|
||||
"ComponentB:render",
|
||||
"ComponentC:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:willUpdateProps",
|
||||
"ComponentC:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentD:willUpdateProps",
|
||||
"ComponentD:render",
|
||||
"ComponentC:rendered",
|
||||
"ComponentD:willRender",
|
||||
"ComponentD:rendered",
|
||||
"ComponentA:willPatch",
|
||||
"ComponentB:willPatch",
|
||||
"ComponentC:willPatch",
|
||||
@@ -1078,29 +1152,38 @@ test("concurrent renderings scenario 4", async () => {
|
||||
expect(steps).toEqual([
|
||||
"ComponentA:setup",
|
||||
"ComponentA:willStart",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:setup",
|
||||
"ComponentB:willStart",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:setup",
|
||||
"ComponentC:willStart",
|
||||
"ComponentC:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentD:setup",
|
||||
"ComponentD:willStart",
|
||||
"ComponentD:render",
|
||||
"ComponentC:rendered",
|
||||
"ComponentD:willRender",
|
||||
"ComponentD:rendered",
|
||||
"ComponentD:mounted",
|
||||
"ComponentC:mounted",
|
||||
"ComponentB:mounted",
|
||||
"ComponentA:mounted",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentC:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentD:willUpdateProps",
|
||||
"ComponentB:render",
|
||||
"ComponentC:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:willUpdateProps",
|
||||
"ComponentC:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentD:willUpdateProps",
|
||||
"ComponentD:render",
|
||||
"ComponentC:rendered",
|
||||
"ComponentD:willRender",
|
||||
"ComponentD:rendered",
|
||||
"ComponentA:willPatch",
|
||||
"ComponentB:willPatch",
|
||||
"ComponentC:willPatch",
|
||||
@@ -1164,17 +1247,22 @@ test("concurrent renderings scenario 5", async () => {
|
||||
expect(steps).toEqual([
|
||||
"ComponentA:setup",
|
||||
"ComponentA:willStart",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:setup",
|
||||
"ComponentB:willStart",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentB:rendered",
|
||||
"ComponentB:mounted",
|
||||
"ComponentA:mounted",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentA:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentB:rendered",
|
||||
"ComponentA:willPatch",
|
||||
"ComponentB:willPatch",
|
||||
"ComponentB:patched",
|
||||
@@ -1235,17 +1323,22 @@ test("concurrent renderings scenario 6", async () => {
|
||||
expect(steps).toEqual([
|
||||
"ComponentA:setup",
|
||||
"ComponentA:willStart",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:setup",
|
||||
"ComponentB:willStart",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentB:rendered",
|
||||
"ComponentB:mounted",
|
||||
"ComponentA:mounted",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentA:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentB:rendered",
|
||||
"ComponentA:willPatch",
|
||||
"ComponentB:willPatch",
|
||||
"ComponentB:patched",
|
||||
@@ -1294,15 +1387,19 @@ test("concurrent renderings scenario 7", async () => {
|
||||
expect(steps).toEqual([
|
||||
"ComponentA:setup",
|
||||
"ComponentA:willStart",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:setup",
|
||||
"ComponentB:willStart",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentB:rendered",
|
||||
"ComponentB:mounted",
|
||||
"ComponentA:mounted",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentB:rendered",
|
||||
"ComponentA:willPatch",
|
||||
"ComponentB:willPatch",
|
||||
"ComponentB:patched",
|
||||
@@ -1354,15 +1451,19 @@ test("concurrent renderings scenario 8", async () => {
|
||||
expect(steps).toEqual([
|
||||
"ComponentA:setup",
|
||||
"ComponentA:willStart",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:setup",
|
||||
"ComponentB:willStart",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentB:rendered",
|
||||
"ComponentB:mounted",
|
||||
"ComponentA:mounted",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentB:rendered",
|
||||
"ComponentA:willPatch",
|
||||
"ComponentB:willPatch",
|
||||
"ComponentB:patched",
|
||||
@@ -1446,30 +1547,40 @@ test("concurrent renderings scenario 9", async () => {
|
||||
expect(steps).toEqual([
|
||||
"ComponentA:setup",
|
||||
"ComponentA:willStart",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:setup",
|
||||
"ComponentB:willStart",
|
||||
"ComponentC:setup",
|
||||
"ComponentC:willStart",
|
||||
"ComponentB:render",
|
||||
"ComponentC:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentB:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentD:setup",
|
||||
"ComponentD:willStart",
|
||||
"ComponentD:render",
|
||||
"ComponentC:rendered",
|
||||
"ComponentD:willRender",
|
||||
"ComponentD:rendered",
|
||||
"ComponentD:mounted",
|
||||
"ComponentC:mounted",
|
||||
"ComponentB:mounted",
|
||||
"ComponentA:mounted",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentC:willUpdateProps",
|
||||
"ComponentC:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentD:willUpdateProps",
|
||||
"ComponentD:render",
|
||||
"ComponentC:render",
|
||||
"ComponentC:rendered",
|
||||
"ComponentD:willRender",
|
||||
"ComponentD:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentD:willUpdateProps",
|
||||
"ComponentD:render",
|
||||
"ComponentB:render",
|
||||
"ComponentC:rendered",
|
||||
"ComponentD:willRender",
|
||||
"ComponentD:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentB:rendered",
|
||||
"ComponentA:willPatch",
|
||||
"ComponentB:willPatch",
|
||||
"ComponentC:willPatch",
|
||||
@@ -1554,22 +1665,28 @@ test("concurrent renderings scenario 10", async () => {
|
||||
expect(steps).toEqual([
|
||||
"ComponentA:setup",
|
||||
"ComponentA:willStart",
|
||||
"ComponentA:render",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:setup",
|
||||
"ComponentB:willStart",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentB:rendered",
|
||||
"ComponentB:mounted",
|
||||
"ComponentA:mounted",
|
||||
"ComponentB:render",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:setup",
|
||||
"ComponentC:willStart",
|
||||
"ComponentA:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentA:willRender",
|
||||
"ComponentB:willUpdateProps",
|
||||
"ComponentB:render",
|
||||
"ComponentA:rendered",
|
||||
"ComponentB:willRender",
|
||||
"ComponentC:destroyed",
|
||||
"ComponentC:setup",
|
||||
"ComponentC:willStart",
|
||||
"ComponentC:render",
|
||||
"ComponentB:rendered",
|
||||
"ComponentC:willRender",
|
||||
"ComponentC:rendered",
|
||||
"ComponentA:willPatch",
|
||||
"ComponentB:willPatch",
|
||||
"ComponentC:mounted",
|
||||
@@ -1624,15 +1741,19 @@ test("concurrent renderings scenario 11", async () => {
|
||||
expect(steps).toEqual([
|
||||
"Parent:setup",
|
||||
"Parent:willStart",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Child:setup",
|
||||
"Child:willStart",
|
||||
"Child:render",
|
||||
"Parent:rendered",
|
||||
"Child:willRender",
|
||||
"Child:rendered",
|
||||
"Child:mounted",
|
||||
"Parent:mounted",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Child:willUpdateProps",
|
||||
"Child:render",
|
||||
"Parent:rendered",
|
||||
"Child:willRender",
|
||||
"Child:rendered",
|
||||
"Parent:willPatch",
|
||||
"Child:willPatch",
|
||||
"Child:patched",
|
||||
@@ -1697,17 +1818,22 @@ test("concurrent renderings scenario 12", async () => {
|
||||
expect(steps).toEqual([
|
||||
"Parent:setup",
|
||||
"Parent:willStart",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Child:setup",
|
||||
"Child:willStart",
|
||||
"Child:render",
|
||||
"Parent:rendered",
|
||||
"Child:willRender",
|
||||
"Child:rendered",
|
||||
"Child:mounted",
|
||||
"Parent:mounted",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Child:willUpdateProps",
|
||||
"Parent:render",
|
||||
"Parent:rendered",
|
||||
"Parent:willRender",
|
||||
"Child:willUpdateProps",
|
||||
"Child:render",
|
||||
"Parent:rendered",
|
||||
"Child:willRender",
|
||||
"Child:rendered",
|
||||
"Parent:willPatch",
|
||||
"Child:willPatch",
|
||||
"Child:patched",
|
||||
@@ -1761,28 +1887,36 @@ test("concurrent renderings scenario 13", async () => {
|
||||
expect(steps).toEqual([
|
||||
"Parent:setup",
|
||||
"Parent:willStart",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Child:setup",
|
||||
"Child:willStart",
|
||||
"Child:render",
|
||||
"Parent:rendered",
|
||||
"Child:willRender",
|
||||
"Child:rendered",
|
||||
"Child:mounted",
|
||||
"Parent:mounted",
|
||||
"Child:render",
|
||||
"Child:willRender",
|
||||
"Child:rendered",
|
||||
"Child:willPatch",
|
||||
"Child:patched",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Child:willUpdateProps",
|
||||
"Child:setup",
|
||||
"Child:willStart",
|
||||
"Child:render",
|
||||
"Child:render",
|
||||
"Parent:rendered",
|
||||
"Child:willRender",
|
||||
"Child:rendered",
|
||||
"Child:willRender",
|
||||
"Child:rendered",
|
||||
"Parent:willPatch",
|
||||
"Child:willPatch",
|
||||
"Child:mounted",
|
||||
"Child:patched",
|
||||
"Parent:patched",
|
||||
"Child:render",
|
||||
"Child:render",
|
||||
"Child:willRender",
|
||||
"Child:rendered",
|
||||
"Child:willRender",
|
||||
"Child:rendered",
|
||||
"Child:willPatch",
|
||||
"Child:patched",
|
||||
"Child:willPatch",
|
||||
@@ -1856,24 +1990,32 @@ test("concurrent renderings scenario 14", async () => {
|
||||
expect(steps).toEqual([
|
||||
"A:setup",
|
||||
"A:willStart",
|
||||
"A:render",
|
||||
"A:willRender",
|
||||
"B:setup",
|
||||
"B:willStart",
|
||||
"B:render",
|
||||
"A:rendered",
|
||||
"B:willRender",
|
||||
"C:setup",
|
||||
"C:willStart",
|
||||
"C:render",
|
||||
"B:rendered",
|
||||
"C:willRender",
|
||||
"C:rendered",
|
||||
"C:mounted",
|
||||
"B:mounted",
|
||||
"A:mounted",
|
||||
"A:render",
|
||||
"A:willRender",
|
||||
"B:willUpdateProps",
|
||||
"B:render",
|
||||
"A:rendered",
|
||||
"B:willRender",
|
||||
"C:willUpdateProps",
|
||||
"C:render",
|
||||
"B:render",
|
||||
"B:rendered",
|
||||
"C:willRender",
|
||||
"C:rendered",
|
||||
"B:willRender",
|
||||
"C:willUpdateProps",
|
||||
"C:render",
|
||||
"B:rendered",
|
||||
"C:willRender",
|
||||
"C:rendered",
|
||||
"A:willPatch",
|
||||
"B:willPatch",
|
||||
"C:willPatch",
|
||||
@@ -1955,24 +2097,32 @@ test("concurrent renderings scenario 15", async () => {
|
||||
expect(steps).toEqual([
|
||||
"A:setup",
|
||||
"A:willStart",
|
||||
"A:render",
|
||||
"A:willRender",
|
||||
"B:setup",
|
||||
"B:willStart",
|
||||
"B:render",
|
||||
"A:rendered",
|
||||
"B:willRender",
|
||||
"C:setup",
|
||||
"C:willStart",
|
||||
"C:render",
|
||||
"B:rendered",
|
||||
"C:willRender",
|
||||
"C:rendered",
|
||||
"C:mounted",
|
||||
"B:mounted",
|
||||
"A:mounted",
|
||||
"A:render",
|
||||
"A:willRender",
|
||||
"B:willUpdateProps",
|
||||
"B:render",
|
||||
"A:rendered",
|
||||
"B:willRender",
|
||||
"C:willUpdateProps",
|
||||
"C:render",
|
||||
"B:render",
|
||||
"B:rendered",
|
||||
"C:willRender",
|
||||
"C:rendered",
|
||||
"B:willRender",
|
||||
"C:willUpdateProps",
|
||||
"C:render",
|
||||
"B:rendered",
|
||||
"C:willRender",
|
||||
"C:rendered",
|
||||
"A:willPatch",
|
||||
"B:willPatch",
|
||||
"C:willPatch",
|
||||
@@ -2063,30 +2213,39 @@ test.skip("concurrent renderings scenario 16", async () => {
|
||||
expect(steps).toEqual([
|
||||
"A:setup",
|
||||
"A:willStart",
|
||||
"A:render",
|
||||
"A:willRender",
|
||||
"B:setup",
|
||||
"B:willStart",
|
||||
"B:render",
|
||||
"A:rendered",
|
||||
"B:willRender",
|
||||
"C:setup",
|
||||
"C:willStart",
|
||||
"C:render",
|
||||
"B:rendered",
|
||||
"C:willRender",
|
||||
"C:rendered",
|
||||
"C:mounted",
|
||||
"B:mounted",
|
||||
"A:mounted",
|
||||
"A:render",
|
||||
"A:willRender",
|
||||
"B:willUpdateProps",
|
||||
"B:render",
|
||||
"A:rendered",
|
||||
"B:willRender",
|
||||
"B:rendered",
|
||||
"C:willUpdateProps",
|
||||
"C:render",
|
||||
"C:willRender",
|
||||
"C:rendered",
|
||||
"D:setup",
|
||||
"D:willStart",
|
||||
"B:render",
|
||||
"B:willRender",
|
||||
"B:rendered",
|
||||
"C:willUpdateProps",
|
||||
"C:render",
|
||||
"C:willRender",
|
||||
"C:rendered",
|
||||
"D:destroyed",
|
||||
"D:setup",
|
||||
"D:willStart",
|
||||
"D:render",
|
||||
"D:willRender",
|
||||
"D:rendered",
|
||||
"A:willPatch",
|
||||
"B:willPatch",
|
||||
"C:willPatch",
|
||||
@@ -2209,9 +2368,11 @@ test("change state and call manually render: no unnecessary rendering", async ()
|
||||
expect(steps).toEqual([
|
||||
"Test:setup",
|
||||
"Test:willStart",
|
||||
"Test:render",
|
||||
"Test:willRender",
|
||||
"Test:rendered",
|
||||
"Test:mounted",
|
||||
"Test:render",
|
||||
"Test:willRender",
|
||||
"Test:rendered",
|
||||
"Test:willPatch",
|
||||
"Test:patched",
|
||||
]);
|
||||
@@ -2242,7 +2403,13 @@ test("changing state before first render does not trigger a render", async () =>
|
||||
await nextTick();
|
||||
expect(renders).toBe(1);
|
||||
expect(fixture.innerHTML).toBe("<div>3</div>");
|
||||
expect(steps).toEqual(["TestW:setup", "TestW:willStart", "TestW:render", "TestW:mounted"]);
|
||||
expect(steps).toEqual([
|
||||
"TestW:setup",
|
||||
"TestW:willStart",
|
||||
"TestW:willRender",
|
||||
"TestW:rendered",
|
||||
"TestW:mounted",
|
||||
]);
|
||||
Object.freeze(steps);
|
||||
});
|
||||
|
||||
@@ -2278,17 +2445,25 @@ test("changing state before first render does not trigger a render (with parent)
|
||||
const parent = await mount(Parent, fixture);
|
||||
|
||||
expect(fixture.innerHTML).toBe("<div></div>");
|
||||
expect(steps).toEqual(["Parent:setup", "Parent:willStart", "Parent:render", "Parent:mounted"]);
|
||||
expect(steps).toEqual([
|
||||
"Parent:setup",
|
||||
"Parent:willStart",
|
||||
"Parent:willRender",
|
||||
"Parent:rendered",
|
||||
"Parent:mounted",
|
||||
]);
|
||||
steps.splice(0);
|
||||
parent.state.flag = true;
|
||||
await nextTick();
|
||||
expect(fixture.innerHTML).toBe("<div><div>3</div></div>");
|
||||
expect(renders).toBe(1);
|
||||
expect(steps).toEqual([
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"TestW:setup",
|
||||
"TestW:willStart",
|
||||
"TestW:render",
|
||||
"Parent:rendered",
|
||||
"TestW:willRender",
|
||||
"TestW:rendered",
|
||||
"Parent:willPatch",
|
||||
"TestW:mounted",
|
||||
"Parent:patched",
|
||||
@@ -2342,10 +2517,12 @@ test("two renderings initiated between willPatch and patched", async () => {
|
||||
expect(steps).toEqual([
|
||||
"Parent:setup",
|
||||
"Parent:willStart",
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Panel:setup",
|
||||
"Panel:willStart",
|
||||
"Panel:render",
|
||||
"Parent:rendered",
|
||||
"Panel:willRender",
|
||||
"Panel:rendered",
|
||||
"Panel:mounted",
|
||||
"Parent:mounted",
|
||||
]);
|
||||
@@ -2356,10 +2533,12 @@ test("two renderings initiated between willPatch and patched", async () => {
|
||||
expect(fixture.innerHTML).toBe("<div><abc>Panel2</abc></div>");
|
||||
|
||||
expect(steps).toEqual([
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Panel:setup",
|
||||
"Panel:willStart",
|
||||
"Panel:render",
|
||||
"Parent:rendered",
|
||||
"Panel:willRender",
|
||||
"Panel:rendered",
|
||||
"Parent:willPatch",
|
||||
"Panel:willUnmount",
|
||||
"Panel:destroyed",
|
||||
@@ -2373,7 +2552,8 @@ test("two renderings initiated between willPatch and patched", async () => {
|
||||
expect(fixture.innerHTML).toBe("<div></div>");
|
||||
|
||||
expect(steps).toEqual([
|
||||
"Parent:render",
|
||||
"Parent:willRender",
|
||||
"Parent:rendered",
|
||||
"Parent:willPatch",
|
||||
"Panel:willUnmount",
|
||||
"Panel:destroyed",
|
||||
|
||||
Reference in New Issue
Block a user