]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/space-before-function-paren.js
2 * @fileoverview Tests for space-before-function-paren.
3 * @author Mathias Schreck <https://github.com/lo1tuma>
7 //------------------------------------------------------------------------------
9 //------------------------------------------------------------------------------
11 const rule
= require("../../../lib/rules/space-before-function-paren");
12 const { RuleTester
} = require("../../../lib/rule-tester");
13 const baseParser
= require("../../fixtures/fixture-parser");
15 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester();
21 ruleTester
.run("space-before-function-paren", rule
, {
25 "var foo = function () {}",
26 "var bar = function foo () {}",
27 "var bar = function foo/**/ () {}",
28 "var bar = function foo /**/() {}",
29 "var bar = function foo/**/\n() {}",
30 "var bar = function foo\n/**/() {}",
31 "var bar = function foo//\n() {}",
32 "var obj = { get foo () {}, set foo (val) {} };",
34 code
: "var obj = { foo () {} };",
35 parserOptions
: { ecmaVersion
: 6 }
37 { code
: "function* foo () {}", parserOptions
: { ecmaVersion
: 6 } },
38 { code
: "var foo = function *() {};", parserOptions
: { ecmaVersion
: 6 } },
40 { code
: "function foo() {}", options
: ["never"] },
41 { code
: "var foo = function() {}", options
: ["never"] },
42 { code
: "var foo = function/**/() {}", options
: ["never"] },
43 { code
: "var foo = function/* */() {}", options
: ["never"] },
44 { code
: "var foo = function/* *//* */() {}", options
: ["never"] },
45 { code
: "var bar = function foo() {}", options
: ["never"] },
46 { code
: "var obj = { get foo() {}, set foo(val) {} };", options
: ["never"] },
48 code
: "var obj = { foo() {} };",
50 parserOptions
: { ecmaVersion
: 6 }
53 code
: "function* foo() {}",
55 parserOptions
: { ecmaVersion
: 6 }
58 code
: "var foo = function*() {};",
60 parserOptions
: { ecmaVersion
: 6 }
66 "var bar = function () {}",
68 "var bat = function*() {};",
69 "var obj = { get foo() {}, set foo(val) {}, bar() {} };"
71 options
: [{ named
: "never", anonymous
: "always" }],
72 parserOptions
: { ecmaVersion
: 6 }
77 "var bar = function() {}",
78 "function* baz () {}",
79 "var bat = function* () {};",
80 "var obj = { get foo () {}, set foo (val) {}, bar () {} };"
82 options
: [{ named
: "always", anonymous
: "never" }],
83 parserOptions
: { ecmaVersion
: 6 }
86 code
: "class Foo { constructor() {} *method() {} }",
87 options
: [{ named
: "never", anonymous
: "always" }],
88 parserOptions
: { ecmaVersion
: 6 }
91 code
: "class Foo { constructor () {} *method () {} }",
92 options
: [{ named
: "always", anonymous
: "never" }],
93 parserOptions
: { ecmaVersion
: 6 }
96 code
: "var foo = function() {}",
97 options
: [{ named
: "always", anonymous
: "ignore" }]
100 code
: "var foo = function () {}",
101 options
: [{ named
: "always", anonymous
: "ignore" }]
104 code
: "var bar = function foo() {}",
105 options
: [{ named
: "ignore", anonymous
: "always" }]
108 code
: "var bar = function foo () {}",
109 options
: [{ named
: "ignore", anonymous
: "always" }]
112 code
: "type TransformFunction = (el: ASTElement, code: string) => string;",
113 parser
: baseParser("babel-eslint7", "function-type-annotation")
116 // Async arrow functions
117 { code
: "() => 1", parserOptions
: { ecmaVersion
: 6 } },
118 { code
: "async a => a", parserOptions
: { ecmaVersion
: 8 } },
119 { code
: "async a => a", options
: [{ asyncArrow
: "always" }], parserOptions
: { ecmaVersion
: 8 } },
120 { code
: "async a => a", options
: [{ asyncArrow
: "never" }], parserOptions
: { ecmaVersion
: 8 } },
121 { code
: "async () => 1", options
: [{ asyncArrow
: "always" }], parserOptions
: { ecmaVersion
: 8 } },
122 { code
: "async() => 1", options
: [{ asyncArrow
: "never" }], parserOptions
: { ecmaVersion
: 8 } },
123 { code
: "async () => 1", options
: [{ asyncArrow
: "ignore" }], parserOptions
: { ecmaVersion
: 8 } },
124 { code
: "async() => 1", options
: [{ asyncArrow
: "ignore" }], parserOptions
: { ecmaVersion
: 8 } },
125 { code
: "async () => 1", parserOptions
: { ecmaVersion
: 8 } },
126 { code
: "async () => 1", options
: ["always"], parserOptions
: { ecmaVersion
: 8 } },
127 { code
: "async() => 1", options
: ["never"], parserOptions
: { ecmaVersion
: 8 } }
132 code
: "function foo() {}",
133 output
: "function foo () {}",
136 type
: "FunctionDeclaration",
137 messageId
: "missingSpace",
144 code
: "function foo/* */() {}",
145 output
: "function foo /* */() {}",
148 type
: "FunctionDeclaration",
149 messageId
: "missingSpace",
156 code
: "var foo = function() {}",
157 output
: "var foo = function () {}",
160 type
: "FunctionExpression",
161 messageId
: "missingSpace",
168 code
: "var bar = function foo() {}",
169 output
: "var bar = function foo () {}",
172 type
: "FunctionExpression",
173 messageId
: "missingSpace",
180 code
: "var obj = { get foo() {}, set foo(val) {} };",
181 output
: "var obj = { get foo () {}, set foo (val) {} };",
184 type
: "FunctionExpression",
185 messageId
: "missingSpace",
190 type
: "FunctionExpression",
191 messageId
: "missingSpace",
198 code
: "var obj = { foo() {} };",
199 output
: "var obj = { foo () {} };",
200 parserOptions
: { ecmaVersion
: 6 },
203 type
: "FunctionExpression",
204 messageId
: "missingSpace",
211 code
: "function* foo() {}",
212 output
: "function* foo () {}",
213 parserOptions
: { ecmaVersion
: 6 },
216 type
: "FunctionDeclaration",
217 messageId
: "missingSpace",
225 code
: "function foo () {}",
226 output
: "function foo() {}",
230 type
: "FunctionDeclaration",
231 messageId
: "unexpectedSpace",
238 code
: "function foo /* */ () {}",
239 output
: "function foo/* */() {}",
243 type
: "FunctionDeclaration",
244 messageId
: "unexpectedSpace",
251 code
: "function foo/* block comment */ () {}",
252 output
: "function foo/* block comment */() {}",
256 type
: "FunctionDeclaration",
257 messageId
: "unexpectedSpace",
264 code
: "function foo/* 1 */ /* 2 */ \n /* 3 */\n/* 4 */ () {}",
265 output
: "function foo/* 1 *//* 2 *//* 3 *//* 4 */() {}",
269 type
: "FunctionDeclaration",
270 messageId
: "unexpectedSpace",
277 code
: "function foo//\n() {}",
282 type
: "FunctionDeclaration",
283 messageId
: "unexpectedSpace",
290 code
: "function foo // line comment \n () {}",
295 type
: "FunctionDeclaration",
296 messageId
: "unexpectedSpace",
303 code
: "function foo\n//\n() {}",
308 type
: "FunctionDeclaration",
309 messageId
: "unexpectedSpace",
316 code
: "var foo = function () {}",
317 output
: "var foo = function() {}",
321 type
: "FunctionExpression",
322 messageId
: "unexpectedSpace",
329 code
: "var bar = function foo () {}",
330 output
: "var bar = function foo() {}",
334 type
: "FunctionExpression",
335 messageId
: "unexpectedSpace",
342 code
: "var obj = { get foo () {}, set foo (val) {} };",
343 output
: "var obj = { get foo() {}, set foo(val) {} };",
347 type
: "FunctionExpression",
348 messageId
: "unexpectedSpace",
353 type
: "FunctionExpression",
354 messageId
: "unexpectedSpace",
361 code
: "var obj = { foo () {} };",
362 output
: "var obj = { foo() {} };",
364 parserOptions
: { ecmaVersion
: 6 },
367 type
: "FunctionExpression",
368 messageId
: "unexpectedSpace",
375 code
: "function* foo () {}",
376 output
: "function* foo() {}",
378 parserOptions
: { ecmaVersion
: 6 },
381 type
: "FunctionDeclaration",
382 messageId
: "unexpectedSpace",
391 "function foo () {}",
392 "var bar = function() {}",
393 "var obj = { get foo () {}, set foo (val) {}, bar () {} };"
397 "var bar = function () {}",
398 "var obj = { get foo() {}, set foo(val) {}, bar() {} };"
400 options
: [{ named
: "never", anonymous
: "always" }],
401 parserOptions
: { ecmaVersion
: 6 },
404 type
: "FunctionDeclaration",
405 messageId
: "unexpectedSpace",
410 type
: "FunctionExpression",
411 messageId
: "missingSpace",
416 type
: "FunctionExpression",
417 messageId
: "unexpectedSpace",
422 type
: "FunctionExpression",
423 messageId
: "unexpectedSpace",
428 type
: "FunctionExpression",
429 messageId
: "unexpectedSpace",
436 code
: "class Foo { constructor () {} *method () {} }",
437 output
: "class Foo { constructor() {} *method() {} }",
438 options
: [{ named
: "never", anonymous
: "always" }],
439 parserOptions
: { ecmaVersion
: 6 },
442 type
: "FunctionExpression",
443 messageId
: "unexpectedSpace",
448 type
: "FunctionExpression",
449 messageId
: "unexpectedSpace",
456 code
: "var foo = { bar () {} }",
457 output
: "var foo = { bar() {} }",
458 options
: [{ named
: "never", anonymous
: "always" }],
459 parserOptions
: { ecmaVersion
: 6 },
462 type
: "FunctionExpression",
463 messageId
: "unexpectedSpace",
472 "var bar = function () {}",
473 "var obj = { get foo() {}, set foo(val) {}, bar() {} };"
476 "function foo () {}",
477 "var bar = function() {}",
478 "var obj = { get foo () {}, set foo (val) {}, bar () {} };"
480 options
: [{ named
: "always", anonymous
: "never" }],
481 parserOptions
: { ecmaVersion
: 6 },
484 type
: "FunctionDeclaration",
485 messageId
: "missingSpace",
490 type
: "FunctionExpression",
491 messageId
: "unexpectedSpace",
496 type
: "FunctionExpression",
497 messageId
: "missingSpace",
502 type
: "FunctionExpression",
503 messageId
: "missingSpace",
508 type
: "FunctionExpression",
509 messageId
: "missingSpace",
516 code
: "var foo = function() {}",
517 output
: "var foo = function () {}",
518 options
: [{ named
: "ignore", anonymous
: "always" }],
521 type
: "FunctionExpression",
522 messageId
: "missingSpace",
529 code
: "var foo = function () {}",
530 output
: "var foo = function() {}",
531 options
: [{ named
: "ignore", anonymous
: "never" }],
534 type
: "FunctionExpression",
535 messageId
: "unexpectedSpace",
542 code
: "var bar = function foo() {}",
543 output
: "var bar = function foo () {}",
544 options
: [{ named
: "always", anonymous
: "ignore" }],
547 type
: "FunctionExpression",
548 messageId
: "missingSpace",
555 code
: "var bar = function foo () {}",
556 output
: "var bar = function foo() {}",
557 options
: [{ named
: "never", anonymous
: "ignore" }],
560 type
: "FunctionExpression",
561 messageId
: "unexpectedSpace",
568 // Async arrow functions
570 code
: "async() => 1",
571 output
: "async () => 1",
572 options
: [{ asyncArrow
: "always" }],
573 parserOptions
: { ecmaVersion
: 8 },
574 errors
: ["Missing space before function parentheses."]
577 code
: "async () => 1",
578 output
: "async() => 1",
579 options
: [{ asyncArrow
: "never" }],
580 parserOptions
: { ecmaVersion
: 8 },
581 errors
: ["Unexpected space before function parentheses."]
584 code
: "async() => 1",
585 output
: "async () => 1",
586 parserOptions
: { ecmaVersion
: 8 },
587 errors
: [{ messageId
: "missingSpace", type
: "ArrowFunctionExpression" }]
590 code
: "async() => 1",
591 output
: "async () => 1",
593 parserOptions
: { ecmaVersion
: 8 },
594 errors
: [{ messageId
: "missingSpace", type
: "ArrowFunctionExpression" }]
597 code
: "async () => 1",
598 output
: "async() => 1",
600 parserOptions
: { ecmaVersion
: 8 },
601 errors
: [{ messageId
: "unexpectedSpace", type
: "ArrowFunctionExpression" }]