From 8dc3ec94bf64f49992506dd924f555f6e1ff4b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Fri, 31 May 2019 13:50:38 +0200 Subject: [PATCH] [IMP] qweb: log invalid code generated by template --- src/qweb_core.ts | 11 +++++++---- tests/qweb.test.ts | 7 +++++++ 2 files changed, 14 insertions(+), 4 deletions(-) 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", () => {