]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/no-duplicate-case.js
2 * @fileoverview Tests for no-duplicate-case rule.
3 * @author Dieter Oberkofler
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const rule
= require("../../../lib/rules/no-duplicate-case"),
13 { RuleTester
} = require("../../../lib/rule-tester");
15 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester();
21 ruleTester
.run("no-duplicate-case", rule
, {
23 "var a = 1; switch (a) {case 1: break; case 2: break; default: break;}",
24 "var a = 1; switch (a) {case 1: break; case '1': break; default: break;}",
25 "var a = 1; switch (a) {case 1: break; case true: break; default: break;}",
26 "var a = 1; switch (a) {default: break;}",
27 "var a = 1, p = {p: {p1: 1, p2: 1}}; switch (a) {case p.p.p1: break; case p.p.p2: break; default: break;}",
28 "var a = 1, f = function(b) { return b ? { p1: 1 } : { p1: 2 }; }; switch (a) {case f(true).p1: break; case f(true, false).p1: break; default: break;}",
29 "var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a + 1).p1: break; case f(a + 2).p1: break; default: break;}",
30 "var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a == 1 ? 2 : 3).p1: break; case f(a === 1 ? 2 : 3).p1: break; default: break;}",
31 "var a = 1, f1 = function() { return { p1: 1 } }, f2 = function() { return { p1: 2 } }; switch (a) {case f1().p1: break; case f2().p1: break; default: break;}",
32 "var a = [1,2]; switch(a.toString()){case ([1,2]).toString():break; case ([1]).toString():break; default:break;}",
33 "switch(a) { case a: break; } switch(a) { case a: break; }",
34 "switch(a) { case toString: break; }"
38 code
: "var a = 1; switch (a) {case 1: break; case 1: break; case 2: break; default: break;}",
40 messageId
: "unexpected",
46 code
: "var a = '1'; switch (a) {case '1': break; case '1': break; case '2': break; default: break;}",
48 messageId
: "unexpected",
54 code
: "var a = 1, one = 1; switch (a) {case one: break; case one: break; case 2: break; default: break;}",
56 messageId
: "unexpected",
62 code
: "var a = 1, p = {p: {p1: 1, p2: 1}}; switch (a) {case p.p.p1: break; case p.p.p1: break; default: break;}",
64 messageId
: "unexpected",
70 code
: "var a = 1, f = function(b) { return b ? { p1: 1 } : { p1: 2 }; }; switch (a) {case f(true).p1: break; case f(true).p1: break; default: break;}",
72 messageId
: "unexpected",
78 code
: "var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a + 1).p1: break; case f(a + 1).p1: break; default: break;}",
80 messageId
: "unexpected",
86 code
: "var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a === 1 ? 2 : 3).p1: break; case f(a === 1 ? 2 : 3).p1: break; default: break;}",
88 messageId
: "unexpected",
94 code
: "var a = 1, f1 = function() { return { p1: 1 } }; switch (a) {case f1().p1: break; case f1().p1: break; default: break;}",
96 messageId
: "unexpected",
102 code
: "var a = [1, 2]; switch(a.toString()){case ([1, 2]).toString():break; case ([1, 2]).toString():break; default:break;}",
104 messageId
: "unexpected",
110 code
: "switch (a) { case a: case a: }",
112 messageId
: "unexpected",
118 code
: "switch (a) { case a: break; case b: break; case a: break; case c: break; case a: break; }",
121 messageId
: "unexpected",
126 messageId
: "unexpected",