implement shouldUpdate method/hook

This commit is contained in:
Géry Debongnie
2019-01-28 16:16:22 +01:00
parent ee255993a8
commit 6ae6ddadc8
2 changed files with 28 additions and 6 deletions
+19
View File
@@ -372,6 +372,25 @@ describe("lifecycle hooks", () => {
"p destroyed"
]);
});
test("shouldUpdate hook prevent rerendering", async () => {
let shouldUpdate = false;
class TestWidget extends Widget<WEnv> {
name = "a";
template = `<div><t t-esc="props.val"/></div>`;
shouldUpdate() {
return shouldUpdate;
}
}
const widget = new TestWidget(env, { val: 42 });
await widget.mount(fixture);
expect(fixture.innerHTML).toBe("<div>42</div>");
await widget.updateProps({ val: 123 });
expect(fixture.innerHTML).toBe("<div>42</div>");
shouldUpdate = true;
await widget.updateProps({ val: 666 });
expect(fixture.innerHTML).toBe("<div>666</div>");
});
});
describe("destroy method", () => {