Skip to content

Commit d91db46

Browse files
Merge pull request #2506 from johanrd/fix/2423
Post-merge review of #2423 (`template-no-action`)
2 parents faabecc + f9edd77 commit d91db46

2 files changed

Lines changed: 36 additions & 8 deletions

File tree

lib/rules/template-no-action.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ module.exports = {
3434
subExpression:
3535
'Do not use `action` as (action ...). Instead, use the `on` modifier and `fn` helper.',
3636
mustache: 'Do not use `action` in templates. Instead, use the `on` modifier and `fn` helper.',
37+
modifier:
38+
'Do not use `action` as an element modifier. Instead, use the `on` modifier and `fn` helper.',
3739
},
3840
},
3941

@@ -49,19 +51,19 @@ module.exports = {
4951
},
5052

5153
GlimmerMustacheStatement(node) {
52-
// Skip if inside an attribute
53-
let parent = node.parent;
54-
while (parent) {
55-
if (parent.type === 'GlimmerAttrNode') {
56-
return;
57-
}
58-
parent = parent.parent;
54+
if (isActionHelper(node)) {
55+
context.report({
56+
node,
57+
messageId: 'mustache',
58+
});
5959
}
60+
},
6061

62+
GlimmerElementModifierStatement(node) {
6163
if (isActionHelper(node)) {
6264
context.report({
6365
node,
64-
messageId: 'mustache',
66+
messageId: 'modifier',
6567
});
6668
}
6769
},

tests/lib/rules/template-no-action.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,31 @@ ruleTester.run('template-no-action', rule, {
5757
},
5858
],
5959
},
60+
{
61+
code: `<template>
62+
<button {{action "submit"}}>Submit</button>
63+
</template>`,
64+
output: null,
65+
errors: [
66+
{
67+
message:
68+
'Do not use `action` as an element modifier. Instead, use the `on` modifier and `fn` helper.',
69+
type: 'GlimmerElementModifierStatement',
70+
},
71+
],
72+
},
73+
{
74+
code: `<template>
75+
<input onclick={{action "foo"}}>
76+
</template>`,
77+
output: null,
78+
errors: [
79+
{
80+
message:
81+
'Do not use `action` in templates. Instead, use the `on` modifier and `fn` helper.',
82+
type: 'GlimmerMustacheStatement',
83+
},
84+
],
85+
},
6086
],
6187
});

0 commit comments

Comments
 (0)