[IMP] qweb: crash if t-on directive is used with no event

closes #33
This commit is contained in:
Géry Debongnie
2019-04-16 14:07:51 +02:00
parent 9dd8a36b28
commit 7974ce4963
2 changed files with 10 additions and 0 deletions
+3
View File
@@ -932,6 +932,9 @@ const onDirective: Directive = {
atNodeCreation({ ctx, fullName, value, nodeID }) {
ctx.rootContext.shouldDefineOwner = true;
const eventName = fullName.slice(5);
if (!eventName) {
throw new Error("Missing event name with t-on directive");
}
let extraArgs;
let handler = value.replace(/\(.*\)/, function(args) {
extraArgs = args.slice(1, -1);
+7
View File
@@ -115,6 +115,13 @@ describe("error handling", () => {
);
});
test("nice error when t-on is evaluated with a missing event", () => {
qweb.addTemplate("templatename", `<div t-on="somemethod"></div>`);
expect(() =>
qweb.render("templatename", { someMethod() {} }, { handlers: [] })
).toThrow("Missing event name with t-on directive");
});
test("error when compiled code is invalid", () => {
qweb.addTemplate(
"templatename",