mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
[IMP] qweb: log invalid code generated by template
This commit is contained in:
+7
-4
@@ -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) {
|
||||||
|
|||||||
@@ -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", () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user