[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")
) 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) {
+7
View File
@@ -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",
`<div t-att-hey="}/^function invalid{{>'"></div>`
@@ -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", () => {