]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/require-jsdoc.js
2 * @fileoverview Test file for require-jsdoc rule
3 * @author Gyandeep Singh
7 //------------------------------------------------------------------------------
9 //------------------------------------------------------------------------------
11 const rule
= require("../../../lib/rules/require-jsdoc"),
12 { RuleTester
} = require("../../../lib/rule-tester");
14 //------------------------------------------------------------------------------
16 //------------------------------------------------------------------------------
18 const ruleTester
= new RuleTester();
20 ruleTester
.run("require-jsdoc", rule
, {
22 "var array = [1,2,3];\narray.forEach(function() {});",
23 "/**\n @class MyClass \n*/\nfunction MyClass() {}",
24 "/**\n Function doing something\n*/\nfunction myFunction() {}",
25 "/**\n Function doing something\n*/\nvar myFunction = function() {};",
26 "/**\n Function doing something\n*/\nObject.myFunction = function () {};",
27 "var obj = { \n /**\n Function doing something\n*/\n myFunction: function () {} };",
29 "/**\n @func myFunction \n*/\nfunction myFunction() {}",
30 "/**\n @method myFunction\n*/\nfunction myFunction() {}",
31 "/**\n @function myFunction\n*/\nfunction myFunction() {}",
33 "/**\n @func myFunction \n*/\nvar myFunction = function () {}",
34 "/**\n @method myFunction\n*/\nvar myFunction = function () {}",
35 "/**\n @function myFunction\n*/\nvar myFunction = function () {}",
37 "/**\n @func myFunction \n*/\nObject.myFunction = function() {}",
38 "/**\n @method myFunction\n*/\nObject.myFunction = function() {}",
39 "/**\n @function myFunction\n*/\nObject.myFunction = function() {}",
42 "var object = {\n/**\n @func myFunction - Some function \n*/\nmyFunction: function() {} }",
43 "var object = {\n/**\n @method myFunction - Some function \n*/\nmyFunction: function() {} }",
44 "var object = {\n/**\n @function myFunction - Some function \n*/\nmyFunction: function() {} }",
46 "var array = [1,2,3];\narray.filter(function() {});",
47 "Object.keys(this.options.rules || {}).forEach(function(name) {}.bind(this));",
48 "var object = { name: 'key'};\nObject.keys(object).forEach(function() {})",
50 code
: "function myFunction() {}",
53 FunctionDeclaration
: false,
54 MethodDefinition
: true,
55 ClassDeclaration
: true
60 code
: "var myFunction = function() {}",
63 FunctionDeclaration
: false,
64 MethodDefinition
: true,
65 ClassDeclaration
: true
72 " * Description for A.\n" +
76 " * Description for constructor.\n" +
77 " * @param {object[]} xs - xs\n" +
79 " constructor(xs) {\n" +
85 MethodDefinition
: true,
86 ClassDeclaration
: true
89 parserOptions
: { ecmaVersion
: 6 }
94 " * Description for A.\n" +
96 "class App extends Component {\n" +
98 " * Description for constructor.\n" +
99 " * @param {object[]} xs - xs\n" +
101 " constructor(xs) {\n" +
107 MethodDefinition
: true,
108 ClassDeclaration
: true
111 parserOptions
: { ecmaVersion
: 6 }
116 " * Description for A.\n" +
118 "export default class App extends Component {\n" +
120 " * Description for constructor.\n" +
121 " * @param {object[]} xs - xs\n" +
123 " constructor(xs) {\n" +
129 MethodDefinition
: true,
130 ClassDeclaration
: true
133 parserOptions
: { ecmaVersion
: 6, sourceType
: "module" }
138 " * Description for A.\n" +
140 "export class App extends Component {\n" +
142 " * Description for constructor.\n" +
143 " * @param {object[]} xs - xs\n" +
145 " constructor(xs) {\n" +
151 MethodDefinition
: true,
152 ClassDeclaration
: true
155 parserOptions
: { ecmaVersion
: 6, sourceType
: "module" }
160 " constructor(xs) {\n" +
166 MethodDefinition
: false,
167 ClassDeclaration
: false
170 parserOptions
: { ecmaVersion
: 6 }
173 code
: "/**\n Function doing something\n*/\nvar myFunction = () => {}",
176 ArrowFunctionExpression
: true
179 parserOptions
: { ecmaVersion
: 6 }
182 code
: "/**\n Function doing something\n*/\nvar myFunction = () => () => {}",
185 ArrowFunctionExpression
: true
188 parserOptions
: { ecmaVersion
: 6 }
191 code
: "setTimeout(() => {}, 10);",
194 ArrowFunctionExpression
: true
197 parserOptions
: { ecmaVersion
: 6 }
200 code
: "/**\nJSDoc Block\n*/\nvar foo = function() {}",
203 FunctionExpression
: true
208 code
: "const foo = {/**\nJSDoc Block\n*/\nbar() {}}",
211 FunctionExpression
: true
214 parserOptions
: { ecmaVersion
: 6 }
217 code
: "var foo = {/**\nJSDoc Block\n*/\nbar: function() {}}",
220 FunctionExpression
: true
225 code
: " var foo = { [function() {}]: 1 };",
228 FunctionExpression
: true
231 parserOptions
: { ecmaVersion
: 6 }
237 code
: "function myFunction() {}",
239 messageId
: "missingJSDocComment",
240 type
: "FunctionDeclaration"
246 " * Description for A.\n" +
249 " constructor(xs) {\n" +
255 MethodDefinition
: true,
256 ClassDeclaration
: true
259 parserOptions
: { ecmaVersion
: 6 },
261 messageId
: "missingJSDocComment",
262 type
: "FunctionExpression"
269 " * Description for constructor.\n" +
270 " * @param {object[]} xs - xs\n" +
272 " constructor(xs) {\n" +
278 MethodDefinition
: true,
279 ClassDeclaration
: true
282 parserOptions
: { ecmaVersion
: 6 },
284 messageId
: "missingJSDocComment",
285 type
: "ClassDeclaration"
290 "class A extends B {\n" +
292 " * Description for constructor.\n" +
293 " * @param {object[]} xs - xs\n" +
295 " constructor(xs) {\n" +
301 MethodDefinition
: true,
302 ClassDeclaration
: true
305 parserOptions
: { ecmaVersion
: 6 },
307 messageId
: "missingJSDocComment",
308 type
: "ClassDeclaration"
313 "export class A extends B {\n" +
315 " * Description for constructor.\n" +
316 " * @param {object[]} xs - xs\n" +
318 " constructor(xs) {\n" +
324 MethodDefinition
: true,
325 ClassDeclaration
: true
328 parserOptions
: { ecmaVersion
: 6, sourceType
: "module" },
330 messageId
: "missingJSDocComment",
331 type
: "ClassDeclaration"
336 "export default class A extends B {\n" +
338 " * Description for constructor.\n" +
339 " * @param {object[]} xs - xs\n" +
341 " constructor(xs) {\n" +
347 MethodDefinition
: true,
348 ClassDeclaration
: true
351 parserOptions
: { ecmaVersion
: 6, sourceType
: "module" },
353 messageId
: "missingJSDocComment",
354 type
: "ClassDeclaration"
358 code
: "var myFunction = () => {}",
361 ArrowFunctionExpression
: true
364 parserOptions
: { ecmaVersion
: 6 },
366 messageId
: "missingJSDocComment",
367 type
: "ArrowFunctionExpression"
371 code
: "var myFunction = () => () => {}",
374 ArrowFunctionExpression
: true
377 parserOptions
: { ecmaVersion
: 6 },
379 messageId
: "missingJSDocComment",
380 type
: "ArrowFunctionExpression"
384 code
: "var foo = function() {}",
387 FunctionExpression
: true
391 messageId
: "missingJSDocComment",
392 type
: "FunctionExpression"
396 code
: "const foo = {bar() {}}",
399 FunctionExpression
: true
402 parserOptions
: { ecmaVersion
: 6 },
404 messageId
: "missingJSDocComment",
405 type
: "FunctionExpression"
409 code
: "var foo = {bar: function() {}}",
412 FunctionExpression
: true
416 messageId
: "missingJSDocComment",
417 type
: "FunctionExpression"