mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
[REF] component: use __owl__ as metadata key
This commit is contained in:
@@ -25,16 +25,16 @@ exports[`composition sub widgets with some state rendered in a loop 1`] = `
|
||||
let _5_index = c1.length;
|
||||
c1.push(null);
|
||||
let def6;
|
||||
let w7 = key8 in context.__widget__.cmap ? context.__widget__.children[context.__widget__.cmap[key8]] : false;
|
||||
let w7 = key8 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[key8]] : false;
|
||||
let props7 = {};
|
||||
let isNew7 = !w7;
|
||||
if (w7 && w7.__widget__.renderPromise) {
|
||||
if (w7.__widget__.isStarted) {
|
||||
if (w7 && w7.__owl__.renderPromise) {
|
||||
if (w7.__owl__.isStarted) {
|
||||
def6 = w7.updateProps(props7, extra.forceUpdate);
|
||||
} else {
|
||||
isNew7 = true
|
||||
if (props7 === w7.__widget__.renderProps) {
|
||||
def6 = w7.__widget__.renderPromise;
|
||||
if (props7 === w7.__owl__.renderProps) {
|
||||
def6 = w7.__owl__.renderPromise;
|
||||
} else {
|
||||
w7.destroy();
|
||||
w7 = false
|
||||
@@ -46,14 +46,14 @@ exports[`composition sub widgets with some state rendered in a loop 1`] = `
|
||||
def6 = w7.updateProps(props7, extra.forceUpdate);
|
||||
} else {
|
||||
w7 = new context.widgets['ChildWidget'](owner, props7);
|
||||
context.__widget__.cmap[key8] = w7.__widget__.id;
|
||||
context.__owl__.cmap[key8] = w7.__owl__.id;
|
||||
def6 = w7._prepare();
|
||||
}
|
||||
}
|
||||
if (isNew7) {
|
||||
def6 = def6.then(vnode=>{let pvnode=h(vnode.sel, {key: key8});c1[_5_index]=pvnode;pvnode.data.hook = {insert(vn){let nvn=w7._mount(vnode, vn.elm);pvnode.elm=nvn.elm},remove(){w7.destroy()},destroy(){w7.destroy()}}; w7.__widget__.pvnode = pvnode;});
|
||||
def6 = def6.then(vnode=>{let pvnode=h(vnode.sel, {key: key8});c1[_5_index]=pvnode;pvnode.data.hook = {insert(vn){let nvn=w7._mount(vnode, vn.elm);pvnode.elm=nvn.elm},remove(){w7.destroy()},destroy(){w7.destroy()}}; w7.__owl__.pvnode = pvnode;});
|
||||
} else {
|
||||
def6 = def6.then(()=>{if (w7.__widget__.isDestroyed) {return};let vnode;if (!w7.__widget__.vnode){vnode=w7.__widget__.pvnode} else { vnode=h(w7.__widget__.vnode.sel, {key: key8});vnode.elm=w7.el;vnode.data.hook = {insert(a){a.elm.parentNode.replaceChild(w7.el,a.elm);a.elm=w7.el;w7.__mount();},remove(){w7.destroy()}, destroy() {w7.destroy()}}}c1[_5_index]=vnode;});
|
||||
def6 = def6.then(()=>{if (w7.__owl__.isDestroyed) {return};let vnode;if (!w7.__owl__.vnode){vnode=w7.__owl__.pvnode} else { vnode=h(w7.__owl__.vnode.sel, {key: key8});vnode.elm=w7.el;vnode.data.hook = {insert(a){a.elm.parentNode.replaceChild(w7.el,a.elm);a.elm=w7.el;w7.__mount();},remove(){w7.destroy()}, destroy() {w7.destroy()}}}c1[_5_index]=vnode;});
|
||||
}
|
||||
extra.promises.push(def6);
|
||||
}
|
||||
@@ -73,16 +73,16 @@ exports[`random stuff/miscellaneous snapshotting compiled code 1`] = `
|
||||
let _2_index = c1.length;
|
||||
c1.push(null);
|
||||
let def3;
|
||||
let w4 = key5 in context.__widget__.cmap ? context.__widget__.children[context.__widget__.cmap[key5]] : false;
|
||||
let w4 = key5 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[key5]] : false;
|
||||
let props4 = {flag: context['state'].flag};
|
||||
let isNew4 = !w4;
|
||||
if (w4 && w4.__widget__.renderPromise) {
|
||||
if (w4.__widget__.isStarted) {
|
||||
if (w4 && w4.__owl__.renderPromise) {
|
||||
if (w4.__owl__.isStarted) {
|
||||
def3 = w4.updateProps(props4, extra.forceUpdate);
|
||||
} else {
|
||||
isNew4 = true
|
||||
if (props4 === w4.__widget__.renderProps) {
|
||||
def3 = w4.__widget__.renderPromise;
|
||||
if (props4 === w4.__owl__.renderProps) {
|
||||
def3 = w4.__owl__.renderPromise;
|
||||
} else {
|
||||
w4.destroy();
|
||||
w4 = false
|
||||
@@ -94,14 +94,14 @@ exports[`random stuff/miscellaneous snapshotting compiled code 1`] = `
|
||||
def3 = w4.updateProps(props4, extra.forceUpdate);
|
||||
} else {
|
||||
w4 = new context.widgets['child'](owner, props4);
|
||||
context.__widget__.cmap[key5] = w4.__widget__.id;
|
||||
context.__owl__.cmap[key5] = w4.__owl__.id;
|
||||
def3 = w4._prepare();
|
||||
}
|
||||
}
|
||||
if (isNew4) {
|
||||
def3 = def3.then(vnode=>{let pvnode=h(vnode.sel, {key: key5});c1[_2_index]=pvnode;pvnode.data.hook = {insert(vn){let nvn=w4._mount(vnode, vn.elm);pvnode.elm=nvn.elm},remove(){w4.destroy()},destroy(){w4.destroy()}}; w4.__widget__.pvnode = pvnode;});
|
||||
def3 = def3.then(vnode=>{let pvnode=h(vnode.sel, {key: key5});c1[_2_index]=pvnode;pvnode.data.hook = {insert(vn){let nvn=w4._mount(vnode, vn.elm);pvnode.elm=nvn.elm},remove(){w4.destroy()},destroy(){w4.destroy()}}; w4.__owl__.pvnode = pvnode;});
|
||||
} else {
|
||||
def3 = def3.then(()=>{if (w4.__widget__.isDestroyed) {return};let vnode;if (!w4.__widget__.vnode){vnode=w4.__widget__.pvnode} else { vnode=h(w4.__widget__.vnode.sel, {key: key5});vnode.elm=w4.el;vnode.data.hook = {insert(a){a.elm.parentNode.replaceChild(w4.el,a.elm);a.elm=w4.el;w4.__mount();},remove(){w4.destroy()}, destroy() {w4.destroy()}}}c1[_2_index]=vnode;});
|
||||
def3 = def3.then(()=>{if (w4.__owl__.isDestroyed) {return};let vnode;if (!w4.__owl__.vnode){vnode=w4.__owl__.pvnode} else { vnode=h(w4.__owl__.vnode.sel, {key: key5});vnode.elm=w4.el;vnode.data.hook = {insert(a){a.elm.parentNode.replaceChild(w4.el,a.elm);a.elm=w4.el;w4.__mount();},remove(){w4.destroy()}, destroy() {w4.destroy()}}}c1[_2_index]=vnode;});
|
||||
}
|
||||
extra.promises.push(def3);
|
||||
return vn1;
|
||||
@@ -119,16 +119,16 @@ exports[`random stuff/miscellaneous t-props should not be undefined (snapshottin
|
||||
let _2_index = c1.length;
|
||||
c1.push(null);
|
||||
let def3;
|
||||
let w4 = 4 in context.__widget__.cmap ? context.__widget__.children[context.__widget__.cmap[4]] : false;
|
||||
let w4 = 4 in context.__owl__.cmap ? context.__owl__.children[context.__owl__.cmap[4]] : false;
|
||||
let props4 = {};
|
||||
let isNew4 = !w4;
|
||||
if (w4 && w4.__widget__.renderPromise) {
|
||||
if (w4.__widget__.isStarted) {
|
||||
if (w4 && w4.__owl__.renderPromise) {
|
||||
if (w4.__owl__.isStarted) {
|
||||
def3 = w4.updateProps(props4, extra.forceUpdate);
|
||||
} else {
|
||||
isNew4 = true
|
||||
if (props4 === w4.__widget__.renderProps) {
|
||||
def3 = w4.__widget__.renderPromise;
|
||||
if (props4 === w4.__owl__.renderProps) {
|
||||
def3 = w4.__owl__.renderPromise;
|
||||
} else {
|
||||
w4.destroy();
|
||||
w4 = false
|
||||
@@ -140,14 +140,14 @@ exports[`random stuff/miscellaneous t-props should not be undefined (snapshottin
|
||||
def3 = w4.updateProps(props4, extra.forceUpdate);
|
||||
} else {
|
||||
w4 = new context.widgets['child'](owner, props4);
|
||||
context.__widget__.cmap[4] = w4.__widget__.id;
|
||||
context.__owl__.cmap[4] = w4.__owl__.id;
|
||||
def3 = w4._prepare();
|
||||
}
|
||||
}
|
||||
if (isNew4) {
|
||||
def3 = def3.then(vnode=>{let pvnode=h(vnode.sel, {key: 4});c1[_2_index]=pvnode;pvnode.data.hook = {insert(vn){let nvn=w4._mount(vnode, vn.elm);pvnode.elm=nvn.elm},remove(){w4.destroy()},destroy(){w4.destroy()}}; w4.__widget__.pvnode = pvnode;});
|
||||
def3 = def3.then(vnode=>{let pvnode=h(vnode.sel, {key: 4});c1[_2_index]=pvnode;pvnode.data.hook = {insert(vn){let nvn=w4._mount(vnode, vn.elm);pvnode.elm=nvn.elm},remove(){w4.destroy()},destroy(){w4.destroy()}}; w4.__owl__.pvnode = pvnode;});
|
||||
} else {
|
||||
def3 = def3.then(()=>{if (w4.__widget__.isDestroyed) {return};let vnode;if (!w4.__widget__.vnode){vnode=w4.__widget__.pvnode} else { vnode=h(w4.__widget__.vnode.sel, {key: 4});vnode.elm=w4.el;vnode.data.hook = {insert(a){a.elm.parentNode.replaceChild(w4.el,a.elm);a.elm=w4.el;w4.__mount();},remove(){w4.destroy()}, destroy() {w4.destroy()}}}c1[_2_index]=vnode;});
|
||||
def3 = def3.then(()=>{if (w4.__owl__.isDestroyed) {return};let vnode;if (!w4.__owl__.vnode){vnode=w4.__owl__.pvnode} else { vnode=h(w4.__owl__.vnode.sel, {key: 4});vnode.elm=w4.el;vnode.data.hook = {insert(a){a.elm.parentNode.replaceChild(w4.el,a.elm);a.elm=w4.el;w4.__mount();},remove(){w4.destroy()}, destroy() {w4.destroy()}}}c1[_2_index]=vnode;});
|
||||
}
|
||||
extra.promises.push(def3);
|
||||
return vn1;
|
||||
|
||||
+32
-32
@@ -39,7 +39,7 @@ afterEach(() => {
|
||||
class Widget extends Component<any, any, any> {}
|
||||
|
||||
function children(w: Widget): Widget[] {
|
||||
const childrenMap = w.__widget__.children;
|
||||
const childrenMap = w.__owl__.children;
|
||||
return Object.keys(childrenMap).map(id => childrenMap[id]);
|
||||
}
|
||||
|
||||
@@ -585,8 +585,8 @@ describe("destroy method", () => {
|
||||
expect(document.contains(widget.el)).toBe(true);
|
||||
widget.destroy();
|
||||
expect(document.contains(widget.el)).toBe(false);
|
||||
expect(widget.__widget__.isMounted).toBe(false);
|
||||
expect(widget.__widget__.isDestroyed).toBe(true);
|
||||
expect(widget.__owl__.isMounted).toBe(false);
|
||||
expect(widget.__owl__.isDestroyed).toBe(true);
|
||||
});
|
||||
|
||||
test("destroying a parent also destroys its children", async () => {
|
||||
@@ -595,9 +595,9 @@ describe("destroy method", () => {
|
||||
|
||||
const child = children(parent)[0];
|
||||
|
||||
expect(child.__widget__.isDestroyed).toBe(false);
|
||||
expect(child.__owl__.isDestroyed).toBe(false);
|
||||
parent.destroy();
|
||||
expect(child.__widget__.isDestroyed).toBe(true);
|
||||
expect(child.__owl__.isDestroyed).toBe(true);
|
||||
});
|
||||
|
||||
test("destroy remove the parent/children link", async () => {
|
||||
@@ -605,10 +605,10 @@ describe("destroy method", () => {
|
||||
await parent.mount(fixture);
|
||||
|
||||
const child = children(parent)[0];
|
||||
expect(child.__widget__.parent).toBe(parent);
|
||||
expect(child.__owl__.parent).toBe(parent);
|
||||
expect(children(parent).length).toBe(1);
|
||||
child.destroy();
|
||||
expect(child.__widget__.parent).toBe(null);
|
||||
expect(child.__owl__.parent).toBe(null);
|
||||
expect(children(parent).length).toBe(0);
|
||||
});
|
||||
|
||||
@@ -623,20 +623,20 @@ describe("destroy method", () => {
|
||||
expect(fixture.innerHTML).toBe("");
|
||||
const widget = new DelayedWidget(env);
|
||||
widget.mount(fixture);
|
||||
expect(widget.__widget__.isStarted).toBe(false);
|
||||
expect(widget.__widget__.isMounted).toBe(false);
|
||||
expect(widget.__widget__.isDestroyed).toBe(false);
|
||||
expect(widget.__owl__.isStarted).toBe(false);
|
||||
expect(widget.__owl__.isMounted).toBe(false);
|
||||
expect(widget.__owl__.isDestroyed).toBe(false);
|
||||
widget.destroy();
|
||||
expect(widget.__widget__.isMounted).toBe(false);
|
||||
expect(widget.__widget__.isStarted).toBe(false);
|
||||
expect(widget.__widget__.isDestroyed).toBe(true);
|
||||
expect(widget.__owl__.isMounted).toBe(false);
|
||||
expect(widget.__owl__.isStarted).toBe(false);
|
||||
expect(widget.__owl__.isDestroyed).toBe(true);
|
||||
def.resolve();
|
||||
await nextTick();
|
||||
|
||||
expect(widget.__widget__.isStarted).toBe(false);
|
||||
expect(widget.__widget__.isMounted).toBe(false);
|
||||
expect(widget.__widget__.isDestroyed).toBe(true);
|
||||
expect(widget.__widget__.vnode).toBe(null);
|
||||
expect(widget.__owl__.isStarted).toBe(false);
|
||||
expect(widget.__owl__.isMounted).toBe(false);
|
||||
expect(widget.__owl__.isDestroyed).toBe(true);
|
||||
expect(widget.__owl__.vnode).toBe(null);
|
||||
expect(fixture.innerHTML).toBe("");
|
||||
expect(isRendered).toBe(false);
|
||||
});
|
||||
@@ -647,7 +647,7 @@ describe("composition", () => {
|
||||
const widget = new WidgetA(env);
|
||||
await widget.mount(fixture);
|
||||
expect(fixture.innerHTML).toBe("<div>Hello<div>world</div></div>");
|
||||
expect(children(widget)[0].__widget__.parent).toBe(widget);
|
||||
expect(children(widget)[0].__owl__.parent).toBe(widget);
|
||||
});
|
||||
|
||||
test("t-refs on widget are widgets", async () => {
|
||||
@@ -682,12 +682,12 @@ describe("composition", () => {
|
||||
const widget = new WidgetA(env);
|
||||
await widget.mount(fixture);
|
||||
|
||||
expect((<any>widget.__widget__.vnode!.children![1]).elm).toBe(
|
||||
(<any>children(widget)[0].__widget__.vnode).elm
|
||||
expect((<any>widget.__owl__.vnode!.children![1]).elm).toBe(
|
||||
(<any>children(widget)[0].__owl__.vnode).elm
|
||||
);
|
||||
await children(widget)[0].render();
|
||||
expect((<any>widget.__widget__.vnode!.children![1]).elm).toBe(
|
||||
(<any>children(widget)[0].__widget__.vnode).elm
|
||||
expect((<any>widget.__owl__.vnode!.children![1]).elm).toBe(
|
||||
(<any>children(widget)[0].__owl__.vnode).elm
|
||||
);
|
||||
});
|
||||
|
||||
@@ -754,12 +754,12 @@ describe("composition", () => {
|
||||
"<div><div>1<button>Inc</button></div></div>"
|
||||
);
|
||||
const counter = children(widget)[0];
|
||||
expect(counter.__widget__.isMounted).toBe(true);
|
||||
expect(counter.__owl__.isMounted).toBe(true);
|
||||
await widget.updateState({ ok: false });
|
||||
expect(fixture.innerHTML).toBe("<div></div>");
|
||||
expect(counter.__widget__.isMounted).toBe(false);
|
||||
expect(counter.__owl__.isMounted).toBe(false);
|
||||
await widget.updateState({ ok: true });
|
||||
expect(counter.__widget__.isMounted).toBe(true);
|
||||
expect(counter.__owl__.isMounted).toBe(true);
|
||||
expect(fixture.innerHTML).toBe(
|
||||
"<div><div>1<button>Inc</button></div></div>"
|
||||
);
|
||||
@@ -878,7 +878,7 @@ describe("composition", () => {
|
||||
const child = children(parent)[0];
|
||||
await parent.updateState({ flag: true });
|
||||
expect(children(parent)[0]).toBe(child);
|
||||
expect(child.__widget__.isDestroyed).toBe(false);
|
||||
expect(child.__owl__.isDestroyed).toBe(false);
|
||||
expect(normalize(fixture.innerHTML)).toBe(
|
||||
normalize(`
|
||||
<div>
|
||||
@@ -1125,15 +1125,15 @@ describe("async rendering", () => {
|
||||
}
|
||||
const w = new W(env);
|
||||
w.mount(fixture);
|
||||
expect(w.__widget__.isDestroyed).toBe(false);
|
||||
expect(w.__widget__.isMounted).toBe(false);
|
||||
expect(w.__widget__.isStarted).toBe(false);
|
||||
expect(w.__owl__.isDestroyed).toBe(false);
|
||||
expect(w.__owl__.isMounted).toBe(false);
|
||||
expect(w.__owl__.isStarted).toBe(false);
|
||||
w.destroy();
|
||||
def.resolve();
|
||||
await nextTick();
|
||||
expect(w.__widget__.isDestroyed).toBe(true);
|
||||
expect(w.__widget__.isMounted).toBe(false);
|
||||
expect(w.__widget__.isStarted).toBe(false);
|
||||
expect(w.__owl__.isDestroyed).toBe(true);
|
||||
expect(w.__owl__.isMounted).toBe(false);
|
||||
expect(w.__owl__.isStarted).toBe(false);
|
||||
});
|
||||
|
||||
test("destroying/recreating a subwidget with different props (if start is not over)", async () => {
|
||||
|
||||
Reference in New Issue
Block a user