[IMP] qweb: log invalid code generated by template

This commit is contained in:
Géry Debongnie
2019-05-31 13:50:38 +02:00
parent a554436d03
commit 8dc3ec94bf
2 changed files with 14 additions and 4 deletions
+7 -4
View File
@@ -296,11 +296,14 @@ export class QWeb {
ctx.code.join("\n") ctx.code.join("\n")
) as CompiledTemplate; ) as CompiledTemplate;
} catch (e) { } 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( throw new Error(
`Invalid generated code while compiling template '${ctx.templateName.replace( `Invalid generated code while compiling template '${templateName}': ${
/`/g, e.message
"'" }`
)}': ${e.message}`
); );
} }
if (isDebug) { if (isDebug) {
+7
View File
@@ -85,6 +85,10 @@ describe("error handling", () => {
}); });
test("error when compiled code is invalid", () => { 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( qweb.addTemplate(
"templatename", "templatename",
`<div t-att-hey="}/^function invalid{{>'"></div>` `<div t-att-hey="}/^function invalid{{>'"></div>`
@@ -92,6 +96,9 @@ describe("error handling", () => {
expect(() => qweb.render("templatename")).toThrow( expect(() => qweb.render("templatename")).toThrow(
"Invalid generated code while compiling template 'templatename': Unexpected token }" "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", () => { test("error when unknown directive", () => {