mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
[FIX] refs in recursive templates now work properly
This commit is contained in:
committed by
Samuel Degueldre
parent
74faa8bb82
commit
a9f29c4caa
@@ -1,5 +1,5 @@
|
||||
import { Component, mount, useRef, useState } from "../../src/index";
|
||||
import { makeTestFixture, nextTick, snapshotEverything } from "../helpers";
|
||||
import { Component, mount, onMounted, useRef, useState } from "../../src/index";
|
||||
import { logStep, makeTestFixture, nextTick, snapshotEverything } from "../helpers";
|
||||
import { xml } from "../../src/index";
|
||||
|
||||
snapshotEverything();
|
||||
@@ -100,4 +100,27 @@ describe("refs", () => {
|
||||
expect(console.warn).toBeCalledTimes(1);
|
||||
console.warn = consoleWarn;
|
||||
});
|
||||
|
||||
test("refs and recursive templates", async () => {
|
||||
class Test extends Component {
|
||||
static components = {};
|
||||
static template = xml`
|
||||
<p t-ref="root">
|
||||
<t t-esc="props.tree.value"/>
|
||||
<t t-if="props.tree.child"><Test tree="props.tree.child"/></t>
|
||||
</p>`;
|
||||
root = useRef("root");
|
||||
|
||||
setup() {
|
||||
onMounted(() => logStep(this.root.el!.outerHTML));
|
||||
}
|
||||
}
|
||||
Test.components = { Test };
|
||||
|
||||
const tree = { value: "a", child: { value: "b", child: null } };
|
||||
|
||||
await mount(Test, fixture, { props: { tree } });
|
||||
expect(fixture.innerHTML).toBe("<p>a<p>b</p></p>");
|
||||
expect(["<p>b</p>", "<p>a<p>b</p></p>"]).toBeLogged();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user