]> git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/multiline-ternary.js
first commit
[pve-eslint.git] / eslint / tests / lib / rules / multiline-ternary.js
1 /**
2 * @fileoverview Enforce newlines between operands of ternary expressions
3 * @author Kai Cataldo
4 */
5
6 "use strict";
7
8 //------------------------------------------------------------------------------
9 // Requirements
10 //------------------------------------------------------------------------------
11
12 const rule = require("../../../lib/rules/multiline-ternary");
13 const { RuleTester } = require("../../../lib/rule-tester");
14
15 //------------------------------------------------------------------------------
16 // Tests
17 //------------------------------------------------------------------------------
18
19 const ruleTester = new RuleTester();
20
21 ruleTester.run("multiline-ternary", rule, {
22 valid: [
23
24 // default "always"
25 "a\n? b\n: c",
26 "a ?\nb :\nc",
27 "a\n? b\n? c\n: d\n: e",
28 "a\n? (b\n? c\n: d)\n: e",
29
30 // "always"
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
36 // "always-multiline"
37 { code: "a\n? b\n: c", options: ["always-multiline"] },
38 { code: "a ?\nb :\nc", options: ["always-multiline"] },
39 { code: "a\n? b\n? c\n: d\n: e", options: ["always-multiline"] },
40 { code: "a\n? (b\n? c\n: d)\n: e", options: ["always-multiline"] },
41 { code: "a ? b : c", options: ["always-multiline"] },
42 { code: "a ? b ? c : d : e", options: ["always-multiline"] },
43 { code: "a ? (b ? c : d) : e", options: ["always-multiline"] },
44 { code: "a\n? (b ? c : d)\n: e", options: ["always-multiline"] },
45 { code: "a ?\n(b ? c : d) :\ne", options: ["always-multiline"] },
46
47 // "never"
48 { code: "a ? b : c", options: ["never"] },
49 { code: "a ? b ? c : d : e", options: ["never"] },
50 { code: "a ? (b ? c : d) : e", options: ["never"] }
51 ],
52
53 invalid: [
54
55 // default "always"
56 {
57 code: "a ? b : c",
58 errors: [{
59 messageId: "expectedTestCons",
60 line: 1,
61 column: 1
62 },
63 {
64 messageId: "expectedConsAlt",
65 line: 1,
66 column: 5
67 }]
68 },
69 {
70 code: "a\n? b : c",
71 errors: [{
72 messageId: "expectedConsAlt",
73 line: 2,
74 column: 3
75 }]
76 },
77 {
78 code: "a ? b\n: c",
79 errors: [{
80 messageId: "expectedTestCons",
81 line: 1,
82 column: 1
83 }]
84 },
85 {
86 code: "a ? (b ? c : d) : e",
87 errors: [{
88 messageId: "expectedTestCons",
89 line: 1,
90 column: 1
91 },
92 {
93 messageId: "expectedConsAlt",
94 line: 1,
95 column: 6
96 },
97 {
98 messageId: "expectedTestCons",
99 line: 1,
100 column: 6
101 },
102 {
103 messageId: "expectedConsAlt",
104 line: 1,
105 column: 10
106 }]
107 },
108 {
109 code: "a ?\n(b ? c : d) :\ne",
110 errors: [{
111 messageId: "expectedTestCons",
112 line: 2,
113 column: 2
114 },
115 {
116 messageId: "expectedConsAlt",
117 line: 2,
118 column: 6
119 }]
120 },
121 {
122 code: "a ? (b\n? c\n: d) : e",
123 errors: [{
124 messageId: "expectedTestCons",
125 line: 1,
126 column: 1
127 },
128 {
129 messageId: "expectedConsAlt",
130 line: 1,
131 column: 6
132 }]
133 },
134 {
135 code: "a ?\n(b? c\n: d) : e",
136 errors: [{
137 messageId: "expectedConsAlt",
138 line: 2,
139 column: 2
140 },
141 {
142 messageId: "expectedTestCons",
143 line: 2,
144 column: 2
145 }]
146 },
147 {
148 code: "a ?\n(b\n? c : d) : e",
149 errors: [{
150 messageId: "expectedConsAlt",
151 line: 2,
152 column: 2
153 },
154 {
155 messageId: "expectedConsAlt",
156 line: 3,
157 column: 3
158 }]
159 },
160 {
161 code: "a ?\n(b\n? c\n : d) : e",
162 errors: [{
163 messageId: "expectedConsAlt",
164 line: 2,
165 column: 2
166 }]
167 },
168
169 // "always"
170 {
171 code: "a ? b : c",
172 options: ["always"],
173 errors: [{
174 messageId: "expectedTestCons",
175 line: 1,
176 column: 1
177 },
178 {
179 messageId: "expectedConsAlt",
180 line: 1,
181 column: 5
182 }]
183 },
184 {
185 code: "a\n? b : c",
186 options: ["always"],
187 errors: [{
188 messageId: "expectedConsAlt",
189 line: 2,
190 column: 3
191 }]
192 },
193 {
194 code: "a ? b\n: c",
195 options: ["always"],
196 errors: [{
197 messageId: "expectedTestCons",
198 line: 1,
199 column: 1
200 }]
201 },
202 {
203 code: "a ? (b ? c : d) : e",
204 options: ["always"],
205 errors: [{
206 messageId: "expectedTestCons",
207 line: 1,
208 column: 1
209 },
210 {
211 messageId: "expectedConsAlt",
212 line: 1,
213 column: 6
214 },
215 {
216 messageId: "expectedTestCons",
217 line: 1,
218 column: 6
219 },
220 {
221 messageId: "expectedConsAlt",
222 line: 1,
223 column: 10
224 }]
225 },
226 {
227 code: "a ?\n(b ? c : d) :\ne",
228 options: ["always"],
229 errors: [{
230 messageId: "expectedTestCons",
231 line: 2,
232 column: 2
233 },
234 {
235 messageId: "expectedConsAlt",
236 line: 2,
237 column: 6
238 }]
239 },
240 {
241 code: "a ? (b\n? c\n: d) : e",
242 options: ["always"],
243 errors: [{
244 messageId: "expectedTestCons",
245 line: 1,
246 column: 1
247 },
248 {
249 messageId: "expectedConsAlt",
250 line: 1,
251 column: 6
252 }]
253 },
254 {
255 code: "a ?\n(b? c\n: d) : e",
256 options: ["always"],
257 errors: [{
258 messageId: "expectedConsAlt",
259 line: 2,
260 column: 2
261 },
262 {
263 messageId: "expectedTestCons",
264 line: 2,
265 column: 2
266 }]
267 },
268 {
269 code: "a ?\n(b\n? c : d) : e",
270 options: ["always"],
271 errors: [{
272 messageId: "expectedConsAlt",
273 line: 2,
274 column: 2
275 },
276 {
277 messageId: "expectedConsAlt",
278 line: 3,
279 column: 3
280 }]
281 },
282 {
283 code: "a ?\n(b\n? c\n : d) : e",
284 options: ["always"],
285 errors: [{
286 messageId: "expectedConsAlt",
287 line: 2,
288 column: 2
289 }]
290 },
291
292 // "always-multiline"
293 {
294 code: "a\n? b : c",
295 options: ["always-multiline"],
296 errors: [{
297 messageId: "expectedConsAlt",
298 line: 2,
299 column: 3
300 }]
301 },
302 {
303 code: "a ? b\n: c",
304 options: ["always-multiline"],
305 errors: [{
306 messageId: "expectedTestCons",
307 line: 1,
308 column: 1
309 }]
310 },
311 {
312 code: "a &&\nb ? c : d",
313 options: ["always-multiline"],
314 errors: [{
315 messageId: "expectedTestCons",
316 line: 1,
317 column: 1
318 },
319 {
320 messageId: "expectedConsAlt",
321 line: 2,
322 column: 5
323 }]
324 },
325 {
326 code: "a ? b +\nc : d",
327 options: ["always-multiline"],
328 errors: [{
329 messageId: "expectedTestCons",
330 line: 1,
331 column: 1
332 },
333 {
334 messageId: "expectedConsAlt",
335 line: 1,
336 column: 5
337 }]
338 },
339 {
340 code: "a ? b : c +\nd",
341 options: ["always-multiline"],
342 errors: [{
343 messageId: "expectedTestCons",
344 line: 1,
345 column: 1
346 },
347 {
348 messageId: "expectedConsAlt",
349 line: 1,
350 column: 5
351 }]
352 },
353 {
354 code: "a ?\n(b ? c : d) : e",
355 options: ["always-multiline"],
356 errors: [{
357 messageId: "expectedConsAlt",
358 line: 2,
359 column: 2
360 }]
361 },
362 {
363 code: "a ? (b ? c : d) :\ne",
364 options: ["always-multiline"],
365 errors: [{
366 messageId: "expectedTestCons",
367 line: 1,
368 column: 1
369 }]
370 },
371 {
372 code: "a ? (b\n? c\n: d) : e",
373 options: ["always-multiline"],
374 errors: [{
375 messageId: "expectedTestCons",
376 line: 1,
377 column: 1
378 },
379 {
380 messageId: "expectedConsAlt",
381 line: 1,
382 column: 6
383 }]
384 },
385 {
386 code: "a ?\n(b ? c\n: d) : e",
387 options: ["always-multiline"],
388 errors: [{
389 messageId: "expectedConsAlt",
390 line: 2,
391 column: 2
392 },
393 {
394 messageId: "expectedTestCons",
395 line: 2,
396 column: 2
397 }]
398 },
399 {
400 code: "a ?\n(b\n? c : d) : e",
401 options: ["always-multiline"],
402 errors: [{
403 messageId: "expectedConsAlt",
404 line: 2,
405 column: 2
406 },
407 {
408 messageId: "expectedConsAlt",
409 line: 3,
410 column: 3
411 }]
412 },
413 {
414 code: "a ?\n(b\n? c\n : d) : e",
415 options: ["always-multiline"],
416 errors: [{
417 messageId: "expectedConsAlt",
418 line: 2,
419 column: 2
420 }]
421 },
422
423 // "never"
424 {
425 code: "a\n? b : c",
426 options: ["never"],
427 errors: [{
428 messageId: "unexpectedTestCons",
429 line: 1,
430 column: 1
431 }]
432 },
433 {
434 code: "a ? b\n: c",
435 options: ["never"],
436 errors: [{
437 messageId: "unexpectedConsAlt",
438 line: 1,
439 column: 5
440 }]
441 },
442 {
443 code: "a ?\n(b ? c : d) :\ne",
444 options: ["never"],
445 errors: [{
446 messageId: "unexpectedTestCons",
447 line: 1,
448 column: 1
449 },
450 {
451 messageId: "unexpectedConsAlt",
452 line: 2,
453 column: 2
454 }]
455 },
456 {
457 code: "a ? (b\n? c\n: d) : e",
458 options: ["never"],
459 errors: [{
460 messageId: "unexpectedTestCons",
461 line: 1,
462 column: 6
463 },
464 {
465 messageId: "unexpectedConsAlt",
466 line: 2,
467 column: 3
468 }]
469 },
470 {
471 code: "a ?\n(b? c\n: d) : e",
472 options: ["never"],
473 errors: [{
474 messageId: "unexpectedTestCons",
475 line: 1,
476 column: 1
477 },
478 {
479 messageId: "unexpectedConsAlt",
480 line: 2,
481 column: 5
482 }]
483 },
484 {
485 code: "a ?\n(b\n? c : d) : e",
486 options: ["never"],
487 errors: [{
488 messageId: "unexpectedTestCons",
489 line: 1,
490 column: 1
491 },
492 {
493 messageId: "unexpectedTestCons",
494 line: 2,
495 column: 2
496 }]
497 },
498 {
499 code: "a ?\n(b\n? c\n : d) : e",
500 options: ["never"],
501 errors: [{
502 messageId: "unexpectedTestCons",
503 line: 1,
504 column: 1
505 },
506 {
507 messageId: "unexpectedTestCons",
508 line: 2,
509 column: 2
510 },
511 {
512 messageId: "unexpectedConsAlt",
513 line: 3,
514 column: 3
515 }]
516 },
517 {
518 code: "a ? (b\n? c\n: d)\n: e",
519 options: ["never"],
520 errors: [{
521 messageId: "unexpectedConsAlt",
522 line: 1,
523 column: 6
524 },
525 {
526 messageId: "unexpectedTestCons",
527 line: 1,
528 column: 6
529 },
530 {
531 messageId: "unexpectedConsAlt",
532 line: 2,
533 column: 3
534 }]
535 },
536 {
537 code: "a\n?\n(b\n?\nc\n:\nd)\n:\ne",
538 options: ["never"],
539 errors: [{
540 messageId: "unexpectedTestCons",
541 line: 1,
542 column: 1
543 },
544 {
545 messageId: "unexpectedConsAlt",
546 line: 3,
547 column: 2
548 },
549 {
550 messageId: "unexpectedTestCons",
551 line: 3,
552 column: 2
553 },
554 {
555 messageId: "unexpectedConsAlt",
556 line: 5,
557 column: 1
558 }]
559 }
560 ]
561 });