diff --git a/src/qweb_core.ts b/src/qweb_core.ts index 07e22750..8c94f750 100644 --- a/src/qweb_core.ts +++ b/src/qweb_core.ts @@ -296,11 +296,14 @@ export class QWeb { ctx.code.join("\n") ) as CompiledTemplate; } catch (e) { + const templateName = ctx.templateName.replace(/`/g, "'"); + console.groupCollapsed(`Invalid Code generated by ${templateName}`); + console.warn(ctx.code.join("\n")); + console.groupEnd(); throw new Error( - `Invalid generated code while compiling template '${ctx.templateName.replace( - /`/g, - "'" - )}': ${e.message}` + `Invalid generated code while compiling template '${templateName}': ${ + e.message + }` ); } if (isDebug) { diff --git a/tests/qweb.test.ts b/tests/qweb.test.ts index 62d04ac7..b1f49a4d 100644 --- a/tests/qweb.test.ts +++ b/tests/qweb.test.ts @@ -85,6 +85,10 @@ describe("error handling", () => { }); test("error when compiled code is invalid", () => { + const consoleWarn = console.warn; + const consoleGroupCollapsed = console.groupCollapsed; + console.warn = jest.fn(); + console.groupCollapsed = jest.fn(); qweb.addTemplate( "templatename", `
` @@ -92,6 +96,9 @@ describe("error handling", () => { expect(() => qweb.render("templatename")).toThrow( "Invalid generated code while compiling template 'templatename': Unexpected token }" ); + expect(console.warn).toBeCalledTimes(1); + console.warn = consoleWarn; + console.groupCollapsed = consoleGroupCollapsed; }); test("error when unknown directive", () => {