]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/func-names.js
2 * @fileoverview Tests for func-names rule.
3 * @author Kyle T. Nunery
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const rule
= require("../../../lib/rules/func-names"),
13 { RuleTester
} = require("../../../lib/rule-tester");
15 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester();
21 ruleTester
.run("func-names", rule
, {
23 "Foo.prototype.bar = function bar(){};",
24 { code
: "Foo.prototype.bar = () => {}", parserOptions
: { ecmaVersion
: 6 } },
26 "function test(d, e, f) {}",
27 "new function bar(){}",
28 "exports = { get foo() { return 1; }, set bar(val) { return val; } };",
30 code
: "({ foo() { return 1; } });",
31 parserOptions
: { ecmaVersion
: 6 }
34 code
: "class A { constructor(){} foo(){} get bar(){} set baz(value){} static qux(){}}",
35 parserOptions
: { ecmaVersion
: 6 }
38 code
: "function foo() {}",
42 code
: "var a = function foo() {};",
46 code
: "class A { constructor(){} foo(){} get bar(){} set baz(value){} static qux(){}}",
47 options
: ["as-needed"],
48 parserOptions
: { ecmaVersion
: 6 }
51 code
: "({ foo() {} });",
52 options
: ["as-needed"],
53 parserOptions
: { ecmaVersion
: 6 }
56 code
: "var foo = function(){};",
57 options
: ["as-needed"]
60 code
: "({foo: function(){}});",
61 options
: ["as-needed"]
64 code
: "(foo = function(){});",
65 options
: ["as-needed"]
68 code
: "({foo = function(){}} = {});",
69 options
: ["as-needed"],
70 parserOptions
: { ecmaVersion
: 6 }
73 code
: "({key: foo = function(){}} = {});",
74 options
: ["as-needed"],
75 parserOptions
: { ecmaVersion
: 6 }
78 code
: "[foo = function(){}] = [];",
79 options
: ["as-needed"],
80 parserOptions
: { ecmaVersion
: 6 }
83 code
: "function fn(foo = function(){}) {}",
84 options
: ["as-needed"],
85 parserOptions
: { ecmaVersion
: 6 }
88 code
: "function foo() {}",
92 code
: "var a = function() {};",
96 code
: "var a = function foo() { foo(); };",
100 code
: "var foo = {bar: function() {}};",
104 code
: "$('#foo').click(function() {});",
108 code
: "Foo.prototype.bar = function() {};",
112 code
: "class A { constructor(){} foo(){} get bar(){} set baz(value){} static qux(){}}",
114 parserOptions
: { ecmaVersion
: 6 }
117 code
: "({ foo() {} });",
119 parserOptions
: { ecmaVersion
: 6 }
124 code
: "export default function foo() {}",
126 parserOptions
: { sourceType
: "module", ecmaVersion
: 6 }
129 code
: "export default function foo() {}",
130 options
: ["as-needed"],
131 parserOptions
: { sourceType
: "module", ecmaVersion
: 6 }
134 code
: "export default function foo() {}",
136 parserOptions
: { sourceType
: "module", ecmaVersion
: 6 }
139 code
: "export default function() {}",
141 parserOptions
: { sourceType
: "module", ecmaVersion
: 6 }
146 code
: "var foo = bar(function *baz() {});",
148 parserOptions
: { ecmaVersion
: 6 }
151 code
: "var foo = bar(function *baz() {});",
152 options
: ["always", { generators
: "always" }],
153 parserOptions
: { ecmaVersion
: 6 }
156 code
: "var foo = bar(function *baz() {});",
157 options
: ["always", { generators
: "as-needed" }],
158 parserOptions
: { ecmaVersion
: 6 }
161 code
: "var foo = function*() {};",
162 options
: ["always", { generators
: "as-needed" }],
163 parserOptions
: { ecmaVersion
: 6 }
166 code
: "var foo = bar(function *baz() {});",
167 options
: ["as-needed"],
168 parserOptions
: { ecmaVersion
: 6 }
171 code
: "var foo = function*() {};",
172 options
: ["as-needed"],
173 parserOptions
: { ecmaVersion
: 6 }
176 code
: "var foo = bar(function *baz() {});",
177 options
: ["as-needed", { generators
: "always" }],
178 parserOptions
: { ecmaVersion
: 6 }
181 code
: "var foo = bar(function *baz() {});",
182 options
: ["as-needed", { generators
: "as-needed" }],
183 parserOptions
: { ecmaVersion
: 6 }
186 code
: "var foo = function*() {};",
187 options
: ["as-needed", { generators
: "as-needed" }],
188 parserOptions
: { ecmaVersion
: 6 }
191 code
: "var foo = bar(function *baz() {});",
192 options
: ["never", { generators
: "always" }],
193 parserOptions
: { ecmaVersion
: 6 }
196 code
: "var foo = bar(function *baz() {});",
197 options
: ["never", { generators
: "as-needed" }],
198 parserOptions
: { ecmaVersion
: 6 }
201 code
: "var foo = function*() {};",
202 options
: ["never", { generators
: "as-needed" }],
203 parserOptions
: { ecmaVersion
: 6 }
207 code
: "var foo = bar(function *() {});",
209 parserOptions
: { ecmaVersion
: 6 }
212 code
: "var foo = function*() {};",
214 parserOptions
: { ecmaVersion
: 6 }
217 code
: "(function*() {}())",
219 parserOptions
: { ecmaVersion
: 6 }
222 code
: "var foo = bar(function *() {});",
223 options
: ["never", { generators
: "never" }],
224 parserOptions
: { ecmaVersion
: 6 }
227 code
: "var foo = function*() {};",
228 options
: ["never", { generators
: "never" }],
229 parserOptions
: { ecmaVersion
: 6 }
232 code
: "(function*() {}())",
233 options
: ["never", { generators
: "never" }],
234 parserOptions
: { ecmaVersion
: 6 }
237 code
: "var foo = bar(function *() {});",
238 options
: ["always", { generators
: "never" }],
239 parserOptions
: { ecmaVersion
: 6 }
242 code
: "var foo = function*() {};",
243 options
: ["always", { generators
: "never" }],
244 parserOptions
: { ecmaVersion
: 6 }
247 code
: "(function*() {}())",
248 options
: ["always", { generators
: "never" }],
249 parserOptions
: { ecmaVersion
: 6 }
252 code
: "var foo = bar(function *() {});",
253 options
: ["as-needed", { generators
: "never" }],
254 parserOptions
: { ecmaVersion
: 6 }
257 code
: "var foo = function*() {};",
258 options
: ["as-needed", { generators
: "never" }],
259 parserOptions
: { ecmaVersion
: 6 }
262 code
: "(function*() {}())",
263 options
: ["as-needed", { generators
: "never" }],
264 parserOptions
: { ecmaVersion
: 6 }
269 code
: "class C { foo = function() {}; }",
270 options
: ["as-needed"],
271 parserOptions
: { ecmaVersion
: 2022 }
274 code
: "class C { [foo] = function() {}; }",
275 options
: ["as-needed"],
276 parserOptions
: { ecmaVersion
: 2022 }
279 code
: "class C { #foo = function() {}; }",
280 options
: ["as-needed"],
281 parserOptions
: { ecmaVersion
: 2022 }
286 code
: "Foo.prototype.bar = function() {};",
288 messageId
: "unnamed",
289 type
: "FunctionExpression",
296 code
: "(function(){}())",
298 messageId
: "unnamed",
299 type
: "FunctionExpression",
306 code
: "f(function(){})",
308 messageId
: "unnamed",
309 type
: "FunctionExpression",
316 code
: "var a = new Date(function() {});",
318 messageId
: "unnamed",
319 type
: "FunctionExpression",
326 code
: "var test = function(d, e, f) {};",
328 messageId
: "unnamed",
329 type
: "FunctionExpression",
336 code
: "new function() {}",
338 messageId
: "unnamed",
339 type
: "FunctionExpression",
346 code
: "Foo.prototype.bar = function() {};",
347 options
: ["as-needed"],
349 messageId
: "unnamed",
350 type
: "FunctionExpression",
357 code
: "(function(){}())",
358 options
: ["as-needed"],
360 messageId
: "unnamed",
361 type
: "FunctionExpression",
368 code
: "f(function(){})",
369 options
: ["as-needed"],
371 messageId
: "unnamed",
372 type
: "FunctionExpression",
379 code
: "var a = new Date(function() {});",
380 options
: ["as-needed"],
382 messageId
: "unnamed",
383 type
: "FunctionExpression",
390 code
: "new function() {}",
391 options
: ["as-needed"],
393 messageId
: "unnamed",
394 type
: "FunctionExpression",
401 code
: "var {foo} = function(){};",
402 options
: ["as-needed"],
403 parserOptions
: { ecmaVersion
: 6 },
405 messageId
: "unnamed",
406 type
: "FunctionExpression",
413 code
: "({ a: obj.prop = function(){} } = foo);",
414 options
: ["as-needed"],
415 parserOptions
: { ecmaVersion
: 6 },
417 messageId
: "unnamed",
418 type
: "FunctionExpression",
425 code
: "[obj.prop = function(){}] = foo;",
426 options
: ["as-needed"],
427 parserOptions
: { ecmaVersion
: 6 },
429 messageId
: "unnamed",
430 type
: "FunctionExpression",
437 code
: "var { a: [b] = function(){} } = foo;",
438 options
: ["as-needed"],
439 parserOptions
: { ecmaVersion
: 6 },
441 messageId
: "unnamed",
442 type
: "FunctionExpression",
449 code
: "function foo({ a } = function(){}) {};",
450 options
: ["as-needed"],
451 parserOptions
: { ecmaVersion
: 6 },
453 messageId
: "unnamed",
454 type
: "FunctionExpression",
461 code
: "var x = function foo() {};",
465 data
: { name
: "function 'foo'" },
466 type
: "FunctionExpression",
473 code
: "Foo.prototype.bar = function foo() {};",
477 data
: { name
: "function 'foo'" },
478 type
: "FunctionExpression",
485 code
: "({foo: function foo() {}})",
489 data
: { name
: "method 'foo'" },
490 type
: "FunctionExpression",
499 code
: "export default function() {}",
501 parserOptions
: { sourceType
: "module", ecmaVersion
: 6 },
503 messageId
: "unnamed",
504 type
: "FunctionDeclaration",
510 code
: "export default function() {}",
511 options
: ["as-needed"],
512 parserOptions
: { sourceType
: "module", ecmaVersion
: 6 },
514 messageId
: "unnamed",
515 type
: "FunctionDeclaration",
521 code
: "export default (function(){});",
522 options
: ["as-needed"],
523 parserOptions
: { sourceType
: "module", ecmaVersion
: 6 },
525 messageId
: "unnamed",
526 type
: "FunctionExpression",
534 code
: "var foo = bar(function *() {});",
536 parserOptions
: { ecmaVersion
: 6 },
538 messageId
: "unnamed",
539 type
: "FunctionExpression",
546 code
: "var foo = function*() {};",
548 parserOptions
: { ecmaVersion
: 6 },
550 messageId
: "unnamed",
551 type
: "FunctionExpression",
558 code
: "(function*() {}())",
560 parserOptions
: { ecmaVersion
: 6 },
562 messageId
: "unnamed",
563 type
: "FunctionExpression",
570 code
: "var foo = bar(function *() {});",
571 options
: ["always", { generators
: "always" }],
572 parserOptions
: { ecmaVersion
: 6 },
574 messageId
: "unnamed",
575 type
: "FunctionExpression",
582 code
: "var foo = function*() {};",
583 options
: ["always", { generators
: "always" }],
584 parserOptions
: { ecmaVersion
: 6 },
586 messageId
: "unnamed",
587 type
: "FunctionExpression",
594 code
: "(function*() {}())",
595 options
: ["always", { generators
: "always" }],
596 parserOptions
: { ecmaVersion
: 6 },
598 messageId
: "unnamed",
599 type
: "FunctionExpression",
606 code
: "var foo = bar(function *() {});",
607 options
: ["always", { generators
: "as-needed" }],
608 parserOptions
: { ecmaVersion
: 6 },
610 messageId
: "unnamed",
611 type
: "FunctionExpression",
618 code
: "(function*() {}())",
619 options
: ["always", { generators
: "as-needed" }],
620 parserOptions
: { ecmaVersion
: 6 },
622 messageId
: "unnamed",
623 type
: "FunctionExpression",
630 code
: "var foo = bar(function *() {});",
631 options
: ["as-needed"],
632 parserOptions
: { ecmaVersion
: 6 },
634 messageId
: "unnamed",
635 type
: "FunctionExpression",
642 code
: "(function*() {}())",
643 options
: ["as-needed"],
644 parserOptions
: { ecmaVersion
: 6 },
646 messageId
: "unnamed",
647 type
: "FunctionExpression",
654 code
: "var foo = bar(function *() {});",
655 options
: ["as-needed", { generators
: "always" }],
656 parserOptions
: { ecmaVersion
: 6 },
658 messageId
: "unnamed",
659 type
: "FunctionExpression",
666 code
: "var foo = function*() {};",
667 options
: ["as-needed", { generators
: "always" }],
668 parserOptions
: { ecmaVersion
: 6 },
670 messageId
: "unnamed",
671 type
: "FunctionExpression",
678 code
: "(function*() {}())",
679 options
: ["as-needed", { generators
: "always" }],
680 parserOptions
: { ecmaVersion
: 6 },
682 messageId
: "unnamed",
683 type
: "FunctionExpression",
690 code
: "var foo = bar(function *() {});",
691 options
: ["as-needed", { generators
: "as-needed" }],
692 parserOptions
: { ecmaVersion
: 6 },
694 messageId
: "unnamed",
695 type
: "FunctionExpression",
702 code
: "(function*() {}())",
703 options
: ["as-needed", { generators
: "as-needed" }],
704 parserOptions
: { ecmaVersion
: 6 },
706 messageId
: "unnamed",
707 type
: "FunctionExpression",
714 code
: "var foo = bar(function *() {});",
715 options
: ["never", { generators
: "always" }],
716 parserOptions
: { ecmaVersion
: 6 },
718 messageId
: "unnamed",
719 type
: "FunctionExpression",
726 code
: "var foo = function*() {};",
727 options
: ["never", { generators
: "always" }],
728 parserOptions
: { ecmaVersion
: 6 },
730 messageId
: "unnamed",
731 type
: "FunctionExpression",
738 code
: "(function*() {}())",
739 options
: ["never", { generators
: "always" }],
740 parserOptions
: { ecmaVersion
: 6 },
742 messageId
: "unnamed",
743 type
: "FunctionExpression",
750 code
: "var foo = bar(function *() {});",
751 options
: ["never", { generators
: "as-needed" }],
752 parserOptions
: { ecmaVersion
: 6 },
754 messageId
: "unnamed",
755 type
: "FunctionExpression",
762 code
: "(function*() {}())",
763 options
: ["never", { generators
: "as-needed" }],
764 parserOptions
: { ecmaVersion
: 6 },
766 messageId
: "unnamed",
767 type
: "FunctionExpression",
775 code
: "var foo = bar(function *baz() {});",
777 parserOptions
: { ecmaVersion
: 6 },
780 data
: { name
: "generator function 'baz'" },
781 type
: "FunctionExpression",
788 code
: "var foo = bar(function *baz() {});",
789 options
: ["never", { generators
: "never" }],
790 parserOptions
: { ecmaVersion
: 6 },
793 data
: { name
: "generator function 'baz'" },
794 type
: "FunctionExpression",
801 code
: "var foo = bar(function *baz() {});",
802 options
: ["always", { generators
: "never" }],
803 parserOptions
: { ecmaVersion
: 6 },
806 data
: { name
: "generator function 'baz'" },
807 type
: "FunctionExpression",
814 code
: "var foo = bar(function *baz() {});",
815 options
: ["as-needed", { generators
: "never" }],
816 parserOptions
: { ecmaVersion
: 6 },
819 data
: { name
: "generator function 'baz'" },
820 type
: "FunctionExpression",
829 code
: "class C { foo = function() {} }",
831 parserOptions
: { ecmaVersion
: 2022 },
833 messageId
: "unnamed",
834 data
: { name
: "method 'foo'" },
840 code
: "class C { [foo] = function() {} }",
842 parserOptions
: { ecmaVersion
: 2022 },
844 messageId
: "unnamed",
845 data
: { name
: "method" },
851 code
: "class C { #foo = function() {} }",
853 parserOptions
: { ecmaVersion
: 2022 },
855 messageId
: "unnamed",
856 data
: { name
: "private method #foo" },
862 code
: "class C { foo = bar(function() {}) }",
863 options
: ["as-needed"],
864 parserOptions
: { ecmaVersion
: 2022 },
866 messageId
: "unnamed",
867 data
: { name
: "function" },
873 code
: "class C { foo = function bar() {} }",
875 parserOptions
: { ecmaVersion
: 2022 },
878 data
: { name
: "method 'foo'" },