diff --git a/addons/web/static/src/core/utils/render.js b/addons/web/static/src/core/utils/render.js index e15b50643c2..ef50087d4cf 100644 --- a/addons/web/static/src/core/utils/render.js +++ b/addons/web/static/src/core/utils/render.js @@ -3,7 +3,7 @@ import { blockDom, markup } from "@odoo/owl"; export function renderToElement(template, context = {}) { - return render(template, context).firstChild; + return render(template, context).firstElementChild; } /** diff --git a/addons/web/static/tests/core/utils/render_tests.js b/addons/web/static/tests/core/utils/render_tests.js new file mode 100644 index 00000000000..a8d745ff557 --- /dev/null +++ b/addons/web/static/tests/core/utils/render_tests.js @@ -0,0 +1,26 @@ +/** @odoo-module **/ + +import { renderToElement, renderToString } from "@web/core/utils/render"; + +QUnit.module("utils", () => { + QUnit.module("render"); + + QUnit.test("renderToElement always returns an element", (assert) => { + renderToString.app.addTemplate( + "test.render.template.1", + ` +
NotOk
+
+ +
Ok
+
` + ); + const compiledTemplate = renderToElement("test.render.template.1"); + assert.strictEqual( + compiledTemplate.nodeType, + Node.ELEMENT_NODE, + "compiledTemplate must be an element" + ); + assert.strictEqual(compiledTemplate.outerHTML, "
Ok
"); + }); +});