[FIX] qweb/component: make widgets work with t-else=""

closes #37
This commit is contained in:
Géry Debongnie
2019-04-16 14:17:02 +02:00
parent 7974ce4963
commit 6640644d34
2 changed files with 24 additions and 1 deletions
+1 -1
View File
@@ -1091,7 +1091,7 @@ const widgetDirective: Directive = {
ctx.addLine(`extra.promises.push(def${defID});`);
if (node.getAttribute("t-if") || node.getAttribute("t-else")) {
if (node.hasAttribute("t-if") || node.hasAttribute("t-else")) {
ctx.closeIf();
}
+23
View File
@@ -1040,6 +1040,29 @@ describe("other directives with t-widget", () => {
await widget.updateState({ flag: false });
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 = `
<div>
<div t-if="state.flag">somediv</div>
<t t-else="" 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>");
await widget.updateState({ flag: false });
expect(normalize(fixture.innerHTML)).toBe("<div><span>hey</span></div>");
});
});
describe("random stuff/miscellaneous", () => {