Add undef-init rule (with yo eslint:rule) and tests for it

This commit is contained in:
2018-08-20 10:16:03 +05:30
parent fe3ce48ec1
commit fedb5219d2
4 changed files with 203 additions and 0 deletions
+104
View File
@@ -0,0 +1,104 @@
/**
* @fileoverview Always initialize variables during declaration. Set it explicitly to undefined, if required.
* @author Abhas Bhattacharya
*/
"use strict";
//------------------------------------------------------------------------------
// Requirements
//------------------------------------------------------------------------------
var rule = require("../../../lib/rules/undef-init"),
RuleTester = require("eslint").RuleTester,
ruleMessage = require("../../../lib/ruleNameMessageMap")['undef-init'];
//------------------------------------------------------------------------------
// Tests
//------------------------------------------------------------------------------
var ruleTester = new RuleTester({
parserOptions: { ecmaVersion: 7 }
});
ruleTester.run("undef-init", rule, {
valid: [
"var a = undefined;",
"var a = 123;",
"let a = [];",
"var a = 1; var b = a;",
"for (var a of {}) {a;}",
"for (var a in []) {a;}",
],
invalid: [
{
code: "var a;",
errors: [{
message: ruleMessage,
}],
output: "var a = undefined;",
},
{
code: "let abc; something_else()",
errors: [{
message: ruleMessage,
}],
output: "let abc = undefined; something_else()"
},
{
code: "let a1, a2, a3;",
errors: [
{
message: ruleMessage,
},
{
message: ruleMessage,
},
{
message: ruleMessage,
}
],
output: "let a1 = undefined, a2 = undefined, a3 = undefined;",
},
{
code: "var a1, a2= 123, a3;",
errors: [
{
message: ruleMessage,
},
{
message: ruleMessage,
},
],
output: "var a1 = undefined, a2= 123, a3 = undefined;",
},
{
code: "for (a of {}){var c;}",
errors: [
{
message: ruleMessage,
},
],
output: "for (a of {}){var c = undefined;}",
},
{
code: "for (var a of {}){var c;}",
errors: [
{
message: ruleMessage,
},
],
output: "for (var a of {}){var c = undefined;}",
},
{
code: "for (var a in []){var c;}",
errors: [
{
message: ruleMessage,
},
],
output: "for (var a in []){var c = undefined;}",
},
]
});