add t-ref directive

This commit is contained in:
Géry Debongnie
2019-01-21 15:46:29 +01:00
parent 64557ae999
commit 9be5cc1760
6 changed files with 53 additions and 15 deletions
+23 -10
View File
@@ -120,21 +120,34 @@ describe("destroy method", () => {
});
describe("composition", () => {
class WidgetB extends Widget {
template= `<div>world</div>`;
}
class WidgetA extends Widget {
name="a";
template= `<div>Hello<t t-widget="b"/></div>`;
widgets = {b: WidgetB}
}
test("a widget with a sub widget", async () => {
class WidgetB extends Widget {
template= `<div>world</div>`;
}
class WidgetA extends Widget {
name="a";
template= `<div>Hello<t t-widget="b"/></div>`;
widgets = {b: WidgetB}
}
const widget = makeWidget(WidgetA);
const target = document.createElement("div");
await widget.mount(target);
expect(target.innerHTML).toBe("<div>Hello<div>world</div></div>");
});
test("t-refs on widget are widgets", async () => {
class WidgetC extends Widget {
name="a";
template= `<div t-debug="1">Hello<t t-ref="mywidgetb" t-widget="b"/></div>`;
widgets = {b: WidgetB}
}
const widget = makeWidget(WidgetC);
const target = document.createElement("div");
await widget.mount(target);
expect(widget.refs.mywidgetb instanceof WidgetB).toBe(true);
});
});