Skip to content

Commit b58b22c

Browse files
committed
Fix issue & add test case for multiple CallExpression case
1 parent b3f122a commit b58b22c

File tree

2 files changed

+27
-5
lines changed

2 files changed

+27
-5
lines changed

lib/rules/no-component-lifecycle-hooks.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ module.exports = {
3030

3131
create(context) {
3232
let isInsideEmberComponent = false;
33-
let currentComponent = null;
33+
let currentEmberComponent = null;
3434

3535
const isAClassicLifecycleHook = keyName => {
3636
return isComponentLifecycleHook(keyName) && isInsideEmberComponent;
@@ -43,15 +43,21 @@ module.exports = {
4343
},
4444

4545
CallExpression(node) {
46-
isInsideEmberComponent = emberUtils.isEmberComponent(context, node);
46+
if (isEmberComponent(context, node)) {
47+
currentEmberComponent = node;
48+
isInsideEmberComponent = true;
49+
}
4750
},
4851

4952
'ClassDeclaration:exit'() {
5053
isInsideEmberComponent = false;
5154
},
5255

53-
'CallExpression:exit'() {
54-
isInsideEmberComponent = false;
56+
'CallExpression:exit'(node) {
57+
if (currentEmberComponent === node) {
58+
currentEmberComponent = null;
59+
isInsideEmberComponent = false;
60+
}
5561
},
5662

5763
MethodDefinition(node) {
@@ -61,7 +67,6 @@ module.exports = {
6167
},
6268

6369
Property(node) {
64-
// TODO: fix
6570
if (isAClassicLifecycleHook(node)) {
6671
report(context, node.key);
6772
}

tests/lib/rules/no-component-lifecycle-hooks.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,5 +128,22 @@ ruleTester.run('no-component-lifecycle-hooks', rule, {
128128
},
129129
],
130130
},
131+
{
132+
code: `
133+
import Component from "@glimmer/component";
134+
135+
export const Component1 = Component.extend({
136+
test: computed('', function () {}),
137+
didDestroyElement() {},
138+
});
139+
`,
140+
output: null,
141+
errors: [
142+
{
143+
message: ERROR_MESSAGE,
144+
type: 'Identifier',
145+
},
146+
],
147+
},
131148
],
132149
});

0 commit comments

Comments
 (0)