]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/multiline-ternary.js
2 * @fileoverview Enforce newlines between operands of ternary expressions
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const rule
= require("../../../lib/rules/multiline-ternary");
13 const { RuleTester
} = require("../../../lib/rule-tester");
15 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester();
21 ruleTester
.run("multiline-ternary", rule
, {
27 "a\n? b\n? c\n: d\n: e",
28 "a\n? (b\n? c\n: d)\n: e",
31 { code
: "a\n? b\n: c", options
: ["always"] },
32 { code
: "a ?\nb :\nc", options
: ["always"] },
33 { code
: "a\n? b\n? c\n: d\n: e", options
: ["always"] },
34 { code
: "a\n? (b\n? c\n: d)\n: e", options
: ["always"] },
35 { code
: "(a\n ? b\n : c)", options
: ["always"] },
36 { code
: "(a)\n? b\n: c", options
: ["always"] },
37 { code
: "((a))\n? b\n: c", options
: ["always"] },
38 { code
: "(a)?\n b\n: c", options
: ["always"] },
39 { code
: "((a))?\n b\n: c", options
: ["always"] },
40 { code
: "a\n? (b)\n: c", options
: ["always"] },
41 { code
: "a\n? ((b))\n: c", options
: ["always"] },
42 { code
: "a ?\n (b)\n: c", options
: ["always"] },
43 { code
: "a ?\n ((b))\n: c", options
: ["always"] },
44 { code
: "a \n? b\n: (c)", options
: ["always"] },
45 { code
: "a \n? b\n: ((c))", options
: ["always"] },
46 { code
: "a \n? b:\n (c)", options
: ["always"] },
47 { code
: "a \n? b:\n ((c))", options
: ["always"] },
48 { code
: "(a) \n? (b)\n: (c)", options
: ["always"] },
49 { code
: "((a)) \n? ((b))\n: ((c))", options
: ["always"] },
50 { code
: "((a)) ?\n ((b)):\n ((c))", options
: ["always"] },
53 { code
: "a\n? b\n: c", options
: ["always-multiline"] },
54 { code
: "a ?\nb :\nc", options
: ["always-multiline"] },
55 { code
: "a\n? b\n? c\n: d\n: e", options
: ["always-multiline"] },
56 { code
: "a\n? (b\n? c\n: d)\n: e", options
: ["always-multiline"] },
57 { code
: "a ? b : c", options
: ["always-multiline"] },
58 { code
: "a ? b ? c : d : e", options
: ["always-multiline"] },
59 { code
: "a ? (b ? c : d) : e", options
: ["always-multiline"] },
60 { code
: "a\n? (b ? c : d)\n: e", options
: ["always-multiline"] },
61 { code
: "a ?\n(b ? c : d) :\ne", options
: ["always-multiline"] },
62 { code
: "(a\n ? b\n : c)", options
: ["always-multiline"] },
63 { code
: "(\na ? b : c\n)", options
: ["always-multiline"] },
64 { code
: "(a)\n? b\n: c", options
: ["always-multiline"] },
65 { code
: "((a))\n? b\n: c", options
: ["always-multiline"] },
66 { code
: "(a)?\n b\n: c", options
: ["always-multiline"] },
67 { code
: "((a))?\n b\n: c", options
: ["always-multiline"] },
68 { code
: "a\n? (b)\n: c", options
: ["always-multiline"] },
69 { code
: "a\n? ((b))\n: c", options
: ["always-multiline"] },
70 { code
: "a ?\n (b)\n: c", options
: ["always-multiline"] },
71 { code
: "a ?\n ((b))\n: c", options
: ["always-multiline"] },
72 { code
: "a \n? b\n: (c)", options
: ["always-multiline"] },
73 { code
: "a \n? b\n: ((c))", options
: ["always-multiline"] },
74 { code
: "a \n? b:\n (c)", options
: ["always-multiline"] },
75 { code
: "a \n? b:\n ((c))", options
: ["always-multiline"] },
76 { code
: "(a) \n? (b)\n: (c)", options
: ["always-multiline"] },
77 { code
: "((a)) \n? ((b))\n: ((c))", options
: ["always-multiline"] },
78 { code
: "((a)) ?\n ((b)):\n ((c))", options
: ["always-multiline"] },
79 { code
: "(a) ? b : c", options
: ["always-multiline"] },
80 { code
: "((a)) ? b : c", options
: ["always-multiline"] },
81 { code
: "a ? (b) : c", options
: ["always-multiline"] },
82 { code
: "a ? ((b)) : c", options
: ["always-multiline"] },
83 { code
: "a ? b : (c)", options
: ["always-multiline"] },
84 { code
: "a ? b : ((c))", options
: ["always-multiline"] },
85 { code
: "(a) ? (b) : (c)", options
: ["always-multiline"] },
86 { code
: "((a)) ? ((b)) : ((c))", options
: ["always-multiline"] },
89 { code
: "a ? b : c", options
: ["never"] },
90 { code
: "a ? b ? c : d : e", options
: ["never"] },
91 { code
: "a ? (b ? c : d) : e", options
: ["never"] },
92 { code
: "a +\n b ? c +\n d : e + \nf", options
: ["never"] },
93 { code
: "(\na ? b : c\n)", options
: ["never"] },
94 { code
: "(a) ? b : c", options
: ["never"] },
95 { code
: "((a)) ? b : c", options
: ["never"] },
96 { code
: "a ? (b) : c", options
: ["never"] },
97 { code
: "a ? ((b)) : c", options
: ["never"] },
98 { code
: "a ? b : (c)", options
: ["never"] },
99 { code
: "a ? b : ((c))", options
: ["never"] },
100 { code
: "(a) ? (b) : (c)", options
: ["never"] },
101 { code
: "((a)) ? ((b)) : ((c))", options
: ["never"] },
102 { code
: "(a\n) ? b : c", options
: ["never"] },
103 { code
: "((a)\n) ? b : c", options
: ["never"] },
104 { code
: "a ? (\nb) : c", options
: ["never"] },
105 { code
: "a ? (\n(b)) : c", options
: ["never"] },
106 { code
: "a ? (b\n) : c", options
: ["never"] },
107 { code
: "a ? ((b)\n) : c", options
: ["never"] },
108 { code
: "a ? b : (\nc)", options
: ["never"] },
109 { code
: "a ? b : (\n(c))", options
: ["never"] },
110 { code
: "(a\n) ? (\nb\n) : (\nc)", options
: ["never"] },
111 { code
: "((a)\n) ? (\n(b)\n) : (\n(c))", options
: ["never"] }
120 messageId
: "expectedTestCons",
125 messageId
: "expectedConsAlt",
133 messageId
: "expectedConsAlt",
141 messageId
: "expectedTestCons",
147 code
: "a ? (b ? c : d) : e",
149 messageId
: "expectedTestCons",
154 messageId
: "expectedConsAlt",
161 messageId
: "expectedTestCons",
166 messageId
: "expectedConsAlt",
172 code
: "a ?\n(b ? c : d) :\ne",
174 messageId
: "expectedTestCons",
179 messageId
: "expectedConsAlt",
185 code
: "a ? (b\n? c\n: d) : e",
187 messageId
: "expectedTestCons",
192 messageId
: "expectedConsAlt",
200 code
: "a ?\n(b? c\n: d) : e",
202 messageId
: "expectedConsAlt",
209 messageId
: "expectedTestCons",
215 code
: "a ?\n(b\n? c : d) : e",
217 messageId
: "expectedConsAlt",
224 messageId
: "expectedConsAlt",
230 code
: "a ?\n(b\n? c\n : d) : e",
232 messageId
: "expectedConsAlt",
245 messageId
: "expectedTestCons",
252 messageId
: "expectedConsAlt",
260 code
: "f() ? a + b : c",
263 messageId
: "expectedTestCons",
270 messageId
: "expectedConsAlt",
281 messageId
: "expectedConsAlt",
290 messageId
: "expectedTestCons",
296 code
: "a ? (b ? c : d) : e",
299 messageId
: "expectedTestCons",
304 messageId
: "expectedConsAlt",
311 messageId
: "expectedTestCons",
316 messageId
: "expectedConsAlt",
322 code
: "a ?\n(b ? c : d) :\ne",
325 messageId
: "expectedTestCons",
330 messageId
: "expectedConsAlt",
336 code
: "a ? (b\n? c\n: d) : e",
339 messageId
: "expectedTestCons",
344 messageId
: "expectedConsAlt",
352 code
: "a ?\n(b? c\n: d) : e",
355 messageId
: "expectedConsAlt",
362 messageId
: "expectedTestCons",
368 code
: "a ?\n(b\n? c : d) : e",
371 messageId
: "expectedConsAlt",
378 messageId
: "expectedConsAlt",
384 code
: "a ?\n(b\n? c\n : d) : e",
387 messageId
: "expectedConsAlt",
395 code
: "(a\n) ? b\n: c",
398 messageId
: "expectedTestCons",
406 code
: "((a)\n) ? b\n: c",
409 messageId
: "expectedTestCons",
417 code
: "a ? (\nb)\n: c",
420 messageId
: "expectedTestCons",
428 code
: "a ? (\n(b))\n: c",
431 messageId
: "expectedTestCons",
439 code
: "a\n? (b\n): c",
442 messageId
: "expectedConsAlt",
450 code
: "a\n? ((b)\n): c",
453 messageId
: "expectedConsAlt",
461 code
: "a\n? b : (\nc)",
464 messageId
: "expectedConsAlt",
472 code
: "a\n? b : (\n(c))",
475 messageId
: "expectedConsAlt",
483 code
: "(a\n) ? (\nb\n) : (\nc)",
486 messageId
: "expectedTestCons",
493 messageId
: "expectedConsAlt",
501 code
: "((a)\n) ? (\n(b)\n) : (\n(c))",
504 messageId
: "expectedTestCons",
511 messageId
: "expectedConsAlt",
519 // "always-multiline"
522 options
: ["always-multiline"],
524 messageId
: "expectedConsAlt",
531 options
: ["always-multiline"],
533 messageId
: "expectedTestCons",
539 code
: "a &&\nb ? c : d",
540 options
: ["always-multiline"],
542 messageId
: "expectedTestCons",
549 messageId
: "expectedConsAlt",
555 code
: "a ? b +\nc : d",
556 options
: ["always-multiline"],
558 messageId
: "expectedTestCons",
563 messageId
: "expectedConsAlt",
569 code
: "a ? b : c +\nd",
570 options
: ["always-multiline"],
572 messageId
: "expectedTestCons",
577 messageId
: "expectedConsAlt",
583 code
: "a ?\n(b ? c : d) : e",
584 options
: ["always-multiline"],
586 messageId
: "expectedConsAlt",
594 code
: "a ? (b ? c : d) :\ne",
595 options
: ["always-multiline"],
597 messageId
: "expectedTestCons",
603 code
: "a ? (b\n? c\n: d) : e",
604 options
: ["always-multiline"],
606 messageId
: "expectedTestCons",
611 messageId
: "expectedConsAlt",
619 code
: "a ?\n(b ? c\n: d) : e",
620 options
: ["always-multiline"],
622 messageId
: "expectedConsAlt",
629 messageId
: "expectedTestCons",
635 code
: "a ?\n(b\n? c : d) : e",
636 options
: ["always-multiline"],
638 messageId
: "expectedConsAlt",
645 messageId
: "expectedConsAlt",
651 code
: "a ?\n(b\n? c\n : d) : e",
652 options
: ["always-multiline"],
654 messageId
: "expectedConsAlt",
662 code
: "(a\n) ? b\n: c",
663 options
: ["always-multiline"],
665 messageId
: "expectedTestCons",
673 code
: "((a)\n) ? b\n: c",
674 options
: ["always-multiline"],
676 messageId
: "expectedTestCons",
684 code
: "a ? (\nb)\n: c",
685 options
: ["always-multiline"],
687 messageId
: "expectedTestCons",
695 code
: "a ? (\n(b))\n: c",
696 options
: ["always-multiline"],
698 messageId
: "expectedTestCons",
706 code
: "a\n? (b\n): c",
707 options
: ["always-multiline"],
709 messageId
: "expectedConsAlt",
717 code
: "a\n? ((b)\n): c",
718 options
: ["always-multiline"],
720 messageId
: "expectedConsAlt",
728 code
: "a\n? b : (\nc)",
729 options
: ["always-multiline"],
731 messageId
: "expectedConsAlt",
739 code
: "a\n? b : (\n(c))",
740 options
: ["always-multiline"],
742 messageId
: "expectedConsAlt",
750 code
: "(a\n) ? (\nb\n) : (\nc)",
751 options
: ["always-multiline"],
753 messageId
: "expectedTestCons",
760 messageId
: "expectedConsAlt",
768 code
: "((a)\n) ? (\n(b)\n) : (\n(c))",
769 options
: ["always-multiline"],
771 messageId
: "expectedTestCons",
778 messageId
: "expectedConsAlt",
791 messageId
: "unexpectedTestCons",
800 messageId
: "unexpectedConsAlt",
806 code
: "a ?\n(b ? c : d) :\ne",
809 messageId
: "unexpectedTestCons",
814 messageId
: "unexpectedConsAlt",
822 code
: "a ? (b\n? c\n: d) : e",
825 messageId
: "unexpectedTestCons",
830 messageId
: "unexpectedConsAlt",
836 code
: "a ?\n(b? c\n: d) : e",
839 messageId
: "unexpectedTestCons",
844 messageId
: "unexpectedConsAlt",
850 code
: "a ?\n(b\n? c : d) : e",
853 messageId
: "unexpectedTestCons",
858 messageId
: "unexpectedTestCons",
864 code
: "a ?\n(b\n? c\n : d) : e",
867 messageId
: "unexpectedTestCons",
872 messageId
: "unexpectedTestCons",
877 messageId
: "unexpectedConsAlt",
883 code
: "a ? (b\n? c\n: d)\n: e",
886 messageId
: "unexpectedConsAlt",
893 messageId
: "unexpectedTestCons",
898 messageId
: "unexpectedConsAlt",
904 code
: "a\n?\n(b\n?\nc\n:\nd)\n:\ne",
907 messageId
: "unexpectedTestCons",
912 messageId
: "unexpectedConsAlt",
919 messageId
: "unexpectedTestCons",
924 messageId
: "unexpectedConsAlt",
930 code
: "(a)\n ? b \n : (c)",
933 messageId
: "unexpectedTestCons",
940 messageId
: "unexpectedConsAlt",
948 code
: "(a)\n ? (b) \n : (c)",
951 messageId
: "unexpectedTestCons",
958 messageId
: "unexpectedConsAlt",
966 code
: "((a))\n ? ((b)) \n : ((c))",
969 messageId
: "unexpectedTestCons",
976 messageId
: "unexpectedConsAlt",