Skip to content

Commit 379ceb3

Browse files
authored
fix: don't consider method calls on literals or new to be jest functions (#1132)
1 parent 0b2d64d commit 379ceb3

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

src/rules/utils/__tests__/parseJestFnCall.test.ts

+4
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,10 @@ ruleTester.run('nonexistent methods', rule, {
114114
'describe.concurrent()()',
115115
'describe.concurrent``()',
116116
'describe.every``()',
117+
'/regex/.test()',
118+
'"something".describe()',
119+
'[].describe()',
120+
'new describe().only()',
117121
],
118122
invalid: [],
119123
});

src/rules/utils/parseJestFnCall.ts

+9-5
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@ export const isTypeOfJestFnCall = (
2121
return jestFnCall !== null && types.includes(jestFnCall.type);
2222
};
2323

24-
export function getNodeChain(node: TSESTree.Node): AccessorNode[] {
24+
const joinChains = (
25+
a: AccessorNode[] | null,
26+
b: AccessorNode[] | null,
27+
): AccessorNode[] | null => (a && b ? [...a, ...b] : null);
28+
29+
export function getNodeChain(node: TSESTree.Node): AccessorNode[] | null {
2530
if (isSupportedAccessor(node)) {
2631
return [node];
2732
}
@@ -30,13 +35,12 @@ export function getNodeChain(node: TSESTree.Node): AccessorNode[] {
3035
case AST_NODE_TYPES.TaggedTemplateExpression:
3136
return getNodeChain(node.tag);
3237
case AST_NODE_TYPES.MemberExpression:
33-
return [...getNodeChain(node.object), ...getNodeChain(node.property)];
34-
case AST_NODE_TYPES.NewExpression:
38+
return joinChains(getNodeChain(node.object), getNodeChain(node.property));
3539
case AST_NODE_TYPES.CallExpression:
3640
return getNodeChain(node.callee);
3741
}
3842

39-
return [];
43+
return null;
4044
}
4145

4246
export interface ResolvedJestFnWithNode extends ResolvedJestFn {
@@ -152,7 +156,7 @@ export const parseJestFnCall = (
152156

153157
const chain = getNodeChain(node);
154158

155-
if (chain.length === 0) {
159+
if (!chain?.length) {
156160
return null;
157161
}
158162

0 commit comments

Comments
 (0)