]> git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/no-case-declarations.js
first commit
[pve-eslint.git] / eslint / tests / lib / rules / no-case-declarations.js
1 /**
2 * @fileoverview Tests for no-case-declarations rule.
3 * @author Erik Arvidsson
4 */
5
6 "use strict";
7
8 //------------------------------------------------------------------------------
9 // Requirements
10 //------------------------------------------------------------------------------
11
12 const rule = require("../../../lib/rules/no-case-declarations"),
13 { RuleTester } = require("../../../lib/rule-tester");
14
15 //------------------------------------------------------------------------------
16 // Tests
17 //------------------------------------------------------------------------------
18
19 const ruleTester = new RuleTester();
20
21 ruleTester.run("no-case-declarations", rule, {
22 valid: [
23 {
24 code: "switch (a) { case 1: { let x = 1; break; } default: { let x = 2; break; } }",
25 parserOptions: { ecmaVersion: 6 }
26 },
27 {
28 code: "switch (a) { case 1: { const x = 1; break; } default: { const x = 2; break; } }",
29 parserOptions: { ecmaVersion: 6 }
30 },
31 {
32 code: "switch (a) { case 1: { function f() {} break; } default: { function f() {} break; } }",
33 parserOptions: { ecmaVersion: 6 }
34 },
35 {
36 code: "switch (a) { case 1: { class C {} break; } default: { class C {} break; } }",
37 parserOptions: { ecmaVersion: 6 }
38 }
39 ],
40 invalid: [
41 {
42 code: "switch (a) { case 1: let x = 1; break; }",
43 parserOptions: { ecmaVersion: 6 },
44 errors: [{ messageId: "unexpected", type: "VariableDeclaration" }]
45 },
46 {
47 code: "switch (a) { default: let x = 2; break; }",
48 parserOptions: { ecmaVersion: 6 },
49 errors: [{ messageId: "unexpected", type: "VariableDeclaration" }]
50 },
51 {
52 code: "switch (a) { case 1: const x = 1; break; }",
53 parserOptions: { ecmaVersion: 6 },
54 errors: [{ messageId: "unexpected", type: "VariableDeclaration" }]
55 },
56 {
57 code: "switch (a) { default: const x = 2; break; }",
58 parserOptions: { ecmaVersion: 6 },
59 errors: [{ messageId: "unexpected", type: "VariableDeclaration" }]
60 },
61 {
62 code: "switch (a) { case 1: function f() {} break; }",
63 parserOptions: { ecmaVersion: 6 },
64 errors: [{ messageId: "unexpected", type: "FunctionDeclaration" }]
65 },
66 {
67 code: "switch (a) { default: function f() {} break; }",
68 parserOptions: { ecmaVersion: 6 },
69 errors: [{ messageId: "unexpected", type: "FunctionDeclaration" }]
70 },
71 {
72 code: "switch (a) { case 1: class C {} break; }",
73 parserOptions: { ecmaVersion: 6 },
74 errors: [{ messageId: "unexpected", type: "ClassDeclaration" }]
75 },
76 {
77 code: "switch (a) { default: class C {} break; }",
78 parserOptions: { ecmaVersion: 6 },
79 errors: [{ messageId: "unexpected", type: "ClassDeclaration" }]
80 }
81 ]
82 });