]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/padded-blocks.js
99d2e0a53e25b409de6d87dab536ba624e302db0
2 * @fileoverview Tests for padded-blocks rule.
3 * @author Mathias Schreck <https://github.com/lo1tuma>
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const rule
= require("../../../lib/rules/padded-blocks"),
13 { RuleTester
} = require("../../../lib/rule-tester");
15 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester();
21 ruleTester
.run("padded-blocks", rule
, {
25 "{\n\n//comment\na();\n\n}",
26 "{\n\na();\n//comment\n\n}",
27 "{\n\na()\n//comment\n\n}",
29 "{//comment\n\na();\n\n}",
30 "{ /* comment */\n\na();\n\n}",
31 "{ /* comment \n */\n\na();\n\n}",
32 "{ /* comment \n */ /* another comment \n */\n\na();\n\n}",
33 "{ /* comment \n */ /* another comment \n */\n\na();\n\n/* comment \n */ /* another comment \n */}",
35 "{\n\na();\n\n/* comment */ }",
36 { code
: "{\n\na();\n\n/* comment */ }", options
: ["always"] },
37 { code
: "{\n\na();\n\n/* comment */ }", options
: [{ blocks
: "always" }] },
39 { code
: "switch (a) {}", options
: [{ switches
: "always" }] },
40 { code
: "switch (a) {\n\ncase 0: foo();\ncase 1: bar();\n\n}", options
: ["always"] },
41 { code
: "switch (a) {\n\ncase 0: foo();\ncase 1: bar();\n\n}", options
: [{ switches
: "always" }] },
42 { code
: "switch (a) {\n\n//comment\ncase 0: foo();//comment\n\n}", options
: [{ switches
: "always" }] },
43 { code
: "switch (a) {//comment\n\ncase 0: foo();\ncase 1: bar();\n\n/* comment */}", options
: [{ switches
: "always" }] },
45 { code
: "class A{\n\nfoo(){}\n\n}", parserOptions
: { ecmaVersion
: 6 } },
46 { code
: "class A{\n\nfoo(){}\n\n}", options
: ["always"], parserOptions
: { ecmaVersion
: 6 } },
47 { code
: "class A{}", options
: [{ classes
: "always" }], parserOptions
: { ecmaVersion
: 6 } },
48 { code
: "class A{\n\n}", options
: [{ classes
: "always" }], parserOptions
: { ecmaVersion
: 6 } },
49 { code
: "class A{\n\nfoo(){}\n\n}", options
: [{ classes
: "always" }], parserOptions
: { ecmaVersion
: 6 } },
51 { code
: "{\na();\n}", options
: ["never"] },
52 { code
: "{\na();}", options
: ["never"] },
53 { code
: "{a();\n}", options
: ["never"] },
54 { code
: "{a();}", options
: ["never"] },
55 { code
: "{a();}", options
: ["always", { allowSingleLineBlocks
: true }] },
56 { code
: "{\n\na();\n\n}", options
: ["always", { allowSingleLineBlocks
: true }] },
57 { code
: "{//comment\na();}", options
: ["never"] },
58 { code
: "{\n//comment\na()\n}", options
: ["never"] },
59 { code
: "{a();//comment\n}", options
: ["never"] },
60 { code
: "{\na();\n//comment\n}", options
: ["never"] },
61 { code
: "{\na()\n//comment\n}", options
: ["never"] },
62 { code
: "{\na()\n//comment\nb()\n}", options
: ["never"] },
63 { code
: "function a() {\n/* comment */\nreturn;\n/* comment*/\n}", options
: ["never"] },
64 { code
: "{\n// comment\ndebugger;\n// comment\n}", options
: ["never"] },
65 { code
: "{\n\n// comment\nif (\n// comment\n a) {}\n\n }", options
: ["always"] },
66 { code
: "{\n// comment\nif (\n// comment\n a) {}\n }", options
: ["never"] },
67 { code
: "{\n// comment\nif (\n// comment\n a) {}\n }", options
: [{ blocks
: "never" }] },
69 { code
: "switch (a) {\ncase 0: foo();\n}", options
: ["never"] },
70 { code
: "switch (a) {\ncase 0: foo();\n}", options
: [{ switches
: "never" }] },
73 { code
: "class A{\nfoo(){}\n}", options
: ["never"], parserOptions
: { ecmaVersion
: 6 } },
74 { code
: "class A{\nfoo(){}\n}", options
: [{ classes
: "never" }], parserOptions
: { ecmaVersion
: 6 } },
76 // Ignore block statements if not configured
77 { code
: "{\na();\n}", options
: [{ switches
: "always" }] },
78 { code
: "{\n\na();\n\n}", options
: [{ switches
: "never" }] },
80 // Ignore switch statements if not configured
81 { code
: "switch (a) {\ncase 0: foo();\ncase 1: bar();\n}", options
: [{ blocks
: "always", classes
: "always" }] },
82 { code
: "switch (a) {\n\ncase 0: foo();\ncase 1: bar();\n\n}", options
: [{ blocks
: "never", classes
: "never" }] },
85 // Ignore class statements if not configured
86 { code
: "class A{\nfoo(){}\n}", options
: [{ blocks
: "always" }], parserOptions
: { ecmaVersion
: 6 } },
87 { code
: "class A{\n\nfoo(){}\n\n}", options
: [{ blocks
: "never" }], parserOptions
: { ecmaVersion
: 6 } }
92 code
: "{\n//comment\na();\n\n}",
93 output
: "{\n\n//comment\na();\n\n}",
96 messageId
: "alwaysPadBlock",
103 code
: "{ //comment\na();\n\n}",
104 output
: "{ //comment\n\na();\n\n}",
107 messageId
: "alwaysPadBlock",
114 code
: "{\n\na();\n//comment\n}",
115 output
: "{\n\na();\n//comment\n\n}",
118 messageId
: "alwaysPadBlock",
125 code
: "{\n\na()\n//comment\n}",
126 output
: "{\n\na()\n//comment\n\n}",
129 messageId
: "alwaysPadBlock",
136 code
: "{\na();\n\n}",
137 output
: "{\n\na();\n\n}",
140 messageId
: "alwaysPadBlock",
146 code
: "{\n\na();\n}",
147 output
: "{\n\na();\n\n}",
150 messageId
: "alwaysPadBlock",
157 output
: "{\n\na();\n\n}",
160 messageId
: "alwaysPadBlock",
164 messageId
: "alwaysPadBlock",
170 code
: "{\r\na();\r\n}",
171 output
: "{\n\r\na();\r\n\n}",
174 messageId
: "alwaysPadBlock",
178 messageId
: "alwaysPadBlock",
185 output
: "{\n\na();\n}",
188 messageId
: "alwaysPadBlock",
192 messageId
: "alwaysPadBlock",
199 output
: "{\na();\n\n}",
202 messageId
: "alwaysPadBlock",
206 messageId
: "alwaysPadBlock",
213 output
: "{\na();\n\n}",
214 options
: [{ blocks
: "always" }],
217 messageId
: "alwaysPadBlock",
221 messageId
: "alwaysPadBlock",
227 code
: "switch (a) {\ncase 0: foo();\ncase 1: bar();\n}",
228 output
: "switch (a) {\n\ncase 0: foo();\ncase 1: bar();\n\n}",
232 messageId
: "alwaysPadBlock",
237 messageId
: "alwaysPadBlock",
244 code
: "switch (a) {\ncase 0: foo();\ncase 1: bar();\n}",
245 output
: "switch (a) {\n\ncase 0: foo();\ncase 1: bar();\n\n}",
246 options
: [{ switches
: "always" }],
249 messageId
: "alwaysPadBlock",
254 messageId
: "alwaysPadBlock",
261 code
: "switch (a) {\n//comment\ncase 0: foo();//comment\n}",
262 output
: "switch (a) {\n\n//comment\ncase 0: foo();//comment\n\n}",
263 options
: [{ switches
: "always" }],
266 messageId
: "alwaysPadBlock",
271 messageId
: "alwaysPadBlock",
278 code
: "class A {\nconstructor(){}\n}",
279 output
: "class A {\n\nconstructor(){}\n\n}",
281 parserOptions
: { ecmaVersion
: 6 },
284 messageId
: "alwaysPadBlock",
289 messageId
: "alwaysPadBlock",
296 code
: "class A {\nconstructor(){}\n}",
297 output
: "class A {\n\nconstructor(){}\n\n}",
298 options
: [{ classes
: "always" }],
299 parserOptions
: { ecmaVersion
: 6 },
302 messageId
: "alwaysPadBlock",
307 messageId
: "alwaysPadBlock",
315 output
: "{\na();\n}",
318 messageId
: "alwaysPadBlock",
322 messageId
: "alwaysPadBlock",
328 code
: "{\na()\n//comment\n\n}",
329 output
: "{\na()\n//comment\n}",
333 messageId
: "neverPadBlock",
339 code
: "{\n\na();\n\n}",
340 output
: "{\na();\n}",
344 messageId
: "neverPadBlock",
348 messageId
: "neverPadBlock",
354 code
: "{\r\n\r\na();\r\n\r\n}",
355 output
: "{\na();\n}",
359 messageId
: "neverPadBlock",
363 messageId
: "neverPadBlock",
369 code
: "{\n\n\n a();\n\n\n}",
370 output
: "{\n a();\n}",
374 messageId
: "neverPadBlock",
378 messageId
: "neverPadBlock",
384 code
: "{\n\na();\n}",
385 output
: "{\na();\n}",
389 messageId
: "neverPadBlock",
395 code
: "{\n\n\ta();\n}",
396 output
: "{\n\ta();\n}",
400 messageId
: "neverPadBlock",
406 code
: "{\na();\n\n}",
407 output
: "{\na();\n}",
411 messageId
: "neverPadBlock",
417 code
: " {\n a();\n\n }",
418 output
: " {\n a();\n }",
422 messageId
: "neverPadBlock",
428 code
: "{\n// comment\nif (\n// comment\n a) {}\n\n}",
429 output
: "{\n\n// comment\nif (\n// comment\n a) {}\n\n}",
433 messageId
: "alwaysPadBlock",
440 code
: "{\n\n// comment\nif (\n// comment\n a) {}\n}",
441 output
: "{\n// comment\nif (\n// comment\n a) {}\n}",
445 messageId
: "neverPadBlock",
452 code
: "{\n\n// comment\nif (\n// comment\n a) {}\n}",
453 output
: "{\n// comment\nif (\n// comment\n a) {}\n}",
454 options
: [{ blocks
: "never" }],
457 messageId
: "neverPadBlock",
464 code
: "switch (a) {\n\ncase 0: foo();\n\n}",
465 output
: "switch (a) {\ncase 0: foo();\n}",
469 messageId
: "neverPadBlock",
474 messageId
: "neverPadBlock",
481 code
: "switch (a) {\n\ncase 0: foo();\n}",
482 output
: "switch (a) {\ncase 0: foo();\n}",
483 options
: [{ switches
: "never" }],
486 messageId
: "neverPadBlock",
493 code
: "switch (a) {\ncase 0: foo();\n\n }",
494 output
: "switch (a) {\ncase 0: foo();\n }",
495 options
: [{ switches
: "never" }],
498 messageId
: "neverPadBlock",
505 code
: "class A {\n\nconstructor(){\n\nfoo();\n\n}\n\n}",
506 output
: "class A {\nconstructor(){\nfoo();\n}\n}",
508 parserOptions
: { ecmaVersion
: 6 },
511 messageId
: "neverPadBlock",
515 messageId
: "neverPadBlock",
519 messageId
: "neverPadBlock",
523 messageId
: "neverPadBlock",
529 code
: "class A {\n\nconstructor(){\n\nfoo();\n\n}\n\n}",
530 output
: "class A {\nconstructor(){\n\nfoo();\n\n}\n}",
531 options
: [{ classes
: "never" }],
532 parserOptions
: { ecmaVersion
: 6 },
535 messageId
: "neverPadBlock",
539 messageId
: "neverPadBlock",
545 code
: "class A {\n\nconstructor(){\n\nfoo();\n\n}\n\n}",
546 output
: "class A {\nconstructor(){\nfoo();\n}\n}",
547 options
: [{ blocks
: "never", classes
: "never" }],
548 parserOptions
: { ecmaVersion
: 6 },
551 messageId
: "neverPadBlock",
555 messageId
: "neverPadBlock",
559 messageId
: "neverPadBlock",
563 messageId
: "neverPadBlock",
569 code
: "function foo() { // a\n\n b;\n}",
570 output
: "function foo() { // a\n b;\n}",
572 errors
: [{ messageId
: "neverPadBlock" }]
575 code
: "function foo() { /* a\n */\n\n bar;\n}",
576 output
: "function foo() { /* a\n */\n bar;\n}",
578 errors
: [{ messageId
: "neverPadBlock" }]
581 code
: "function foo() {\n\n bar;\n/* a\n */}",
582 output
: "function foo() {\n\n bar;\n\n/* a\n */}",
584 errors
: [{ messageId
: "alwaysPadBlock" }]
587 code
: "function foo() { /* a\n */\n/* b\n */\n bar;\n}",
588 output
: "function foo() { /* a\n */\n\n/* b\n */\n bar;\n\n}",
590 errors
: [{ messageId
: "alwaysPadBlock" }, { messageId
: "alwaysPadBlock" }]
593 code
: "function foo() { /* a\n */ /* b\n */\n bar;\n}",
594 output
: "function foo() { /* a\n */ /* b\n */\n\n bar;\n\n}",
596 errors
: [{ messageId
: "alwaysPadBlock" }, { messageId
: "alwaysPadBlock" }]
599 code
: "function foo() { /* a\n */ /* b\n */\n bar;\n/* c\n *//* d\n */}",
600 output
: "function foo() { /* a\n */ /* b\n */\n\n bar;\n\n/* c\n *//* d\n */}",
602 errors
: [{ messageId
: "alwaysPadBlock" }, { messageId
: "alwaysPadBlock" }]