mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
[FIX] compiler: t-key on a sub-domnode pushes an anchor in parent block
This commit is contained in:
committed by
Aaron Bohy
parent
6d9ed0d62f
commit
a8d88d4009
@@ -68,3 +68,38 @@ exports[`t-key t-key directive in a list 1`] = `
|
||||
}
|
||||
}"
|
||||
`;
|
||||
|
||||
exports[`t-key t-key on sub dom node pushes a child block in its parent 1`] = `
|
||||
"function anonymous(bdom, helpers
|
||||
) {
|
||||
let { text, createBlock, list, multi, html, toggler, component, comment } = bdom;
|
||||
|
||||
let block1 = createBlock(\`<div><block-child-0/><block-child-1/></div>\`);
|
||||
let block2 = createBlock(\`<span/>\`);
|
||||
let block3 = createBlock(\`<div><h1/></div>\`);
|
||||
|
||||
return function template(ctx, node, key = \\"\\") {
|
||||
let b2,b3;
|
||||
if (ctx['hasSpan']) {
|
||||
b2 = block2();
|
||||
}
|
||||
const tKey_1 = ctx['key'];
|
||||
b3 = toggler(tKey_1, block3());
|
||||
return block1([], [b2, b3]);
|
||||
}
|
||||
}"
|
||||
`;
|
||||
|
||||
exports[`t-key t-key on sub dom node pushes a child block in its parent 2`] = `
|
||||
"function anonymous(bdom, helpers
|
||||
) {
|
||||
let { text, createBlock, list, multi, html, toggler, component, comment } = bdom;
|
||||
|
||||
let block1 = createBlock(\`<div><h1/></div>\`);
|
||||
|
||||
return function template(ctx, node, key = \\"\\") {
|
||||
const tKey_1 = ctx['key'];
|
||||
return toggler(tKey_1, block1());
|
||||
}
|
||||
}"
|
||||
`;
|
||||
|
||||
@@ -43,4 +43,24 @@ describe("t-key", () => {
|
||||
})
|
||||
).toBe("<ul><li>Chimay Rouge</li></ul>");
|
||||
});
|
||||
|
||||
test("t-key on sub dom node pushes a child block in its parent", async () => {
|
||||
const template = `
|
||||
<div>
|
||||
<t t-if="hasSpan"><span /></t>
|
||||
<div t-key="key"><h1 /></div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
expect(renderToString(template, { key: "1" })).toBe("<div><div><h1></h1></div></div>");
|
||||
expect(renderToString(template, { hasSpan: true, key: "1" })).toBe(
|
||||
"<div><span></span><div><h1></h1></div></div>"
|
||||
);
|
||||
|
||||
const template2 = `
|
||||
<div t-key="key"><h1 /></div>
|
||||
`;
|
||||
|
||||
expect(renderToString(template2, { key: "1" })).toBe("<div><h1></h1></div>");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user