]> git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/tools/internal-rules/no-invalid-meta.js
import 8.3.0 source
[pve-eslint.git] / eslint / tests / tools / internal-rules / no-invalid-meta.js
1 /**
2 * @fileoverview Tests for internal no-valid-meta rule.
3 * @author Vitor Balocco
4 */
5
6 "use strict";
7
8 //------------------------------------------------------------------------------
9 // Requirements
10 //------------------------------------------------------------------------------
11
12 const rule = require("../../../tools/internal-rules/no-invalid-meta"),
13 { RuleTester } = require("../../../lib/rule-tester");
14
15 //------------------------------------------------------------------------------
16 // Tests
17 //------------------------------------------------------------------------------
18
19 const ruleTester = new RuleTester();
20
21 ruleTester.run("no-invalid-meta", rule, {
22 valid: [
23
24 // context.report() call with no fix
25 [
26 "module.exports = {",
27 " meta: {",
28 " docs: {",
29 " description: 'some rule',",
30 " recommended: false",
31 " },",
32 " schema: []",
33 " },",
34
35 " create: function(context) {",
36 " return {",
37 " Program: function(node) {",
38 " context.report({",
39 " node: node",
40 " });",
41 " }",
42 " };",
43 " }",
44 "};"
45 ].join("\n"),
46
47 // context.report() call in old style
48 [
49 "module.exports = {",
50 " meta: {",
51 " docs: {",
52 " description: 'some rule',",
53 " recommended: false",
54 " },",
55 " schema: []",
56 " },",
57
58 " create: function(context) {",
59 " return {",
60 " Program: function(node) {",
61 " context.report(node, 'Getter is not present');",
62 " }",
63 " };",
64 " }",
65 "};"
66 ].join("\n"),
67
68 // context.report() call with a fix property
69 [
70 "module.exports = {",
71 " meta: {",
72 " docs: {",
73 " description: 'some rule',",
74 " recommended: false",
75 " },",
76 " schema: [],",
77 " fixable: 'whitespace'",
78 " },",
79
80 " create: function(context) {",
81 " return {",
82 " Program: function(node) {",
83 " context.report({",
84 " node: node,",
85 " fix: function(fixer) {",
86 " return fixer.insertTextAfter(node, ' ');",
87 " }",
88 " });",
89 " }",
90 " };",
91 " }",
92 "};"
93 ].join("\n")
94 ],
95 invalid: [
96 {
97 code: [
98 "module.exports = {",
99 " create: function(context) {",
100 " return {",
101 " Program: function(node) {}",
102 " };",
103 " }",
104 "};"
105 ].join("\n"),
106 errors: [{
107 messageId: "missingMeta",
108 line: 1,
109 column: 18
110 }]
111 },
112 {
113 code: [
114 "module.exports = {",
115 " meta: [],",
116
117 " create: function(context) {",
118 " return {",
119 " Program: function(node) {}",
120 " };",
121 " }",
122 "};"
123 ].join("\n"),
124 errors: [{
125 messageId: "missingMetaDocs",
126 line: 2,
127 column: 5
128 }]
129 },
130 {
131 code: [
132 "module.exports = {",
133 " meta: {",
134 " schema: []",
135 " },",
136
137 " create: function(context) {",
138 " return {",
139 " Program: function(node) {}",
140 " };",
141 " }",
142 "};"
143 ].join("\n"),
144 errors: [{
145 messageId: "missingMetaDocs",
146 line: 2,
147 column: 5
148 }]
149 },
150 {
151 code: [
152 "module.exports = {",
153 " meta: {",
154 " docs: {",
155 " description: 'some rule',",
156 " },",
157 " schema: []",
158 " },",
159
160 " create: function(context) {",
161 " return {",
162 " Program: function(node) {}",
163 " };",
164 " }",
165 "};"
166 ].join("\n"),
167 errors: [{
168 messageId: "missingMetaDocsRecommended",
169 line: 2,
170 column: 5
171 }]
172 },
173 {
174 code: "",
175 errors: [{
176 messageId: "noExport",
177 line: 1,
178 column: 1
179 }]
180 },
181 {
182 code: "foo();",
183 errors: [{
184 messageId: "noExport",
185 line: 1,
186 column: 1
187 }]
188 },
189 {
190 code: "foo = bar;",
191 errors: [{
192 messageId: "noExport",
193 line: 1,
194 column: 1
195 }]
196 }
197 ]
198 });