]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/no-useless-call.js
2 * @fileoverview Tests for no-useless-call rule.
3 * @author Toru Nagashima
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const rule
= require("../../../lib/rules/no-useless-call");
13 const { RuleTester
} = require("../../../lib/rule-tester");
15 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester();
21 ruleTester
.run("no-useless-call", rule
, {
24 // `this` binding is different.
25 "foo.apply(obj, 1, 2);",
26 "obj.foo.apply(null, 1, 2);",
27 "obj.foo.apply(otherObj, 1, 2);",
28 "a.b(x, y).c.foo.apply(a.b(x, z).c, 1, 2);",
29 "foo.apply(obj, [1, 2]);",
30 "obj.foo.apply(null, [1, 2]);",
31 "obj.foo.apply(otherObj, [1, 2]);",
32 "a.b(x, y).c.foo.apply(a.b(x, z).c, [1, 2]);",
33 "a.b.foo.apply(a.b.c, [1, 2]);",
36 "foo.apply(null, args);",
37 "obj.foo.apply(obj, args);",
39 // ignores computed property.
40 "var call; foo[call](null, 1, 2);",
41 "var apply; foo[apply](null, [1, 2]);",
43 // ignores incomplete things.
51 code
: "obj?.foo.bar.call(obj.foo, 1, 2);",
52 parserOptions
: { ecmaVersion
: 2020 }
57 code
: "class C { #call; wrap(foo) { foo.#call(undefined, 1, 2); } }",
58 parserOptions
: { ecmaVersion
: 2022 }
65 code
: "foo.call(undefined, 1, 2);",
67 messageId
: "unnecessaryCall",
68 data
: { name
: "call" },
69 type
: "CallExpression"
73 code
: "foo.call(void 0, 1, 2);",
75 messageId
: "unnecessaryCall",
76 data
: { name
: "call" },
77 type
: "CallExpression"
81 code
: "foo.call(null, 1, 2);",
83 messageId
: "unnecessaryCall",
84 data
: { name
: "call" },
85 type
: "CallExpression"
89 code
: "obj.foo.call(obj, 1, 2);",
91 messageId
: "unnecessaryCall",
92 data
: { name
: "call" },
93 type
: "CallExpression"
97 code
: "a.b.c.foo.call(a.b.c, 1, 2);",
99 messageId
: "unnecessaryCall",
100 data
: { name
: "call" },
101 type
: "CallExpression"
105 code
: "a.b(x, y).c.foo.call(a.b(x, y).c, 1, 2);",
107 messageId
: "unnecessaryCall",
108 data
: { name
: "call" },
109 type
: "CallExpression"
115 code
: "foo.apply(undefined, [1, 2]);",
117 messageId
: "unnecessaryCall",
118 data
: { name
: "apply" },
119 type
: "CallExpression"
123 code
: "foo.apply(void 0, [1, 2]);",
125 messageId
: "unnecessaryCall",
126 data
: { name
: "apply" },
127 type
: "CallExpression"
131 code
: "foo.apply(null, [1, 2]);",
133 messageId
: "unnecessaryCall",
134 data
: { name
: "apply" },
135 type
: "CallExpression"
139 code
: "obj.foo.apply(obj, [1, 2]);",
141 messageId
: "unnecessaryCall",
142 data
: { name
: "apply" },
143 type
: "CallExpression"
147 code
: "a.b.c.foo.apply(a.b.c, [1, 2]);",
149 messageId
: "unnecessaryCall",
150 data
: { name
: "apply" },
151 type
: "CallExpression"
155 code
: "a.b(x, y).c.foo.apply(a.b(x, y).c, [1, 2]);",
157 messageId
: "unnecessaryCall",
158 data
: { name
: "apply" },
159 type
: "CallExpression"
163 code
: "[].concat.apply([ ], [1, 2]);",
165 messageId
: "unnecessaryCall",
166 data
: { name
: "apply" },
167 type
: "CallExpression"
171 code
: "[].concat.apply([\n/*empty*/\n], [1, 2]);",
173 messageId
: "unnecessaryCall",
174 data
: { name
: "apply" },
175 type
: "CallExpression"
179 code
: "abc.get(\"foo\", 0).concat.apply(abc . get(\"foo\", 0 ), [1, 2]);",
181 messageId
: "unnecessaryCall",
182 data
: { name
: "apply" },
183 type
: "CallExpression"
189 code
: "foo.call?.(undefined, 1, 2);",
190 parserOptions
: { ecmaVersion
: 2020 },
191 errors
: [{ messageId
: "unnecessaryCall", data
: { name
: "call" } }]
194 code
: "foo?.call(undefined, 1, 2);",
195 parserOptions
: { ecmaVersion
: 2020 },
196 errors
: [{ messageId
: "unnecessaryCall", data
: { name
: "call" } }]
199 code
: "(foo?.call)(undefined, 1, 2);",
200 parserOptions
: { ecmaVersion
: 2020 },
201 errors
: [{ messageId
: "unnecessaryCall", data
: { name
: "call" } }]
204 code
: "obj.foo.call?.(obj, 1, 2);",
205 parserOptions
: { ecmaVersion
: 2020 },
207 messageId
: "unnecessaryCall",
208 data
: { name
: "call" },
209 type
: "CallExpression"
213 code
: "obj?.foo.call(obj, 1, 2);",
214 parserOptions
: { ecmaVersion
: 2020 },
216 messageId
: "unnecessaryCall",
217 data
: { name
: "call" },
218 type
: "CallExpression"
222 code
: "(obj?.foo).call(obj, 1, 2);",
223 parserOptions
: { ecmaVersion
: 2020 },
225 messageId
: "unnecessaryCall",
226 data
: { name
: "call" },
227 type
: "CallExpression"
231 code
: "(obj?.foo.call)(obj, 1, 2);",
232 parserOptions
: { ecmaVersion
: 2020 },
234 messageId
: "unnecessaryCall",
235 data
: { name
: "call" },
236 type
: "CallExpression"
240 code
: "obj?.foo.bar.call(obj?.foo, 1, 2);",
241 parserOptions
: { ecmaVersion
: 2020 },
243 messageId
: "unnecessaryCall",
244 data
: { name
: "call" },
245 type
: "CallExpression"
249 code
: "(obj?.foo).bar.call(obj?.foo, 1, 2);",
250 parserOptions
: { ecmaVersion
: 2020 },
252 messageId
: "unnecessaryCall",
253 data
: { name
: "call" },
254 type
: "CallExpression"
258 code
: "obj.foo?.bar.call(obj.foo, 1, 2);",
259 parserOptions
: { ecmaVersion
: 2020 },
261 messageId
: "unnecessaryCall",
262 data
: { name
: "call" },
263 type
: "CallExpression"