diff --git a/src/qweb_extensions.ts b/src/qweb_extensions.ts index f33af30f..391ae4ca 100644 --- a/src/qweb_extensions.ts +++ b/src/qweb_extensions.ts @@ -475,7 +475,8 @@ QWeb.addDirective({ if (classAttr) { classCode = classAttr - .split(" ") + .trim() + .split(/\s+/) .map(c => `vn.elm.classList.add('${c}')`) .join(";") + ";"; } diff --git a/tests/component.test.ts b/tests/component.test.ts index ccf708d0..5083f14b 100644 --- a/tests/component.test.ts +++ b/tests/component.test.ts @@ -1464,6 +1464,23 @@ describe("class and style attributes with t-component", () => { expect(fixture.innerHTML).toBe(`
`); }); + test("class with extra whitespaces", async () => { + env.qweb.addTemplate( + "ParentWidget", + `
+ +
` + ); + class ParentWidget extends Widget { + components = { Child }; + } + env.qweb.addTemplate("Child", `
`); + class Child extends Widget {} + const widget = new ParentWidget(env); + await widget.mount(fixture); + expect(fixture.innerHTML).toBe(`
`); + }); + test("style is properly added on widget root el", async () => { env.qweb.addTemplate( "ParentWidget",