[FIX] component: make t-widget work with t-elif

closes #97
This commit is contained in:
Géry Debongnie
2019-05-10 19:35:58 +02:00
parent 1760d0d336
commit 53911de00a
2 changed files with 29 additions and 1 deletions
+24
View File
@@ -1395,6 +1395,30 @@ describe("other directives with t-widget", () => {
expect(normalize(fixture.innerHTML)).toBe("<div><span>hey</span></div>");
});
test("t-elif works with t-widget", async () => {
class ParentWidget extends Widget {
inlineTemplate = `
<div>
<div t-if="state.flag">somediv</div>
<t t-elif="!state.flag" t-widget="child"/>
</div>`;
widgets = { child: Child };
state = { flag: true };
}
class Child extends Widget {
inlineTemplate = "<span>hey</span>";
}
const widget = new ParentWidget(env);
await widget.mount(fixture);
expect(normalize(fixture.innerHTML)).toBe("<div><div>somediv</div></div>");
widget.state.flag = false;
await nextTick();
expect(normalize(fixture.innerHTML)).toBe("<div><span>hey</span></div>");
});
test("t-else with empty string works with t-widget", async () => {
class ParentWidget extends Widget {
inlineTemplate = `