mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
tools: enforce deepStrictEqual over deepEqual
Introduce a lint rule that enforces use of `assert.deepStrictEqual()` over `assert.deepEqual()`. PR-URL: https://github.com/nodejs/node/pull/6213 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
@@ -85,9 +85,10 @@ rules:
|
||||
prefer-const: 2
|
||||
|
||||
# Custom rules in tools/eslint-rules
|
||||
align-multiline-assignment: 2
|
||||
assert-fail-single-argument: 2
|
||||
new-with-error: [2, "Error", "RangeError", "TypeError", "SyntaxError", "ReferenceError"]
|
||||
align-multiline-assignment: 2
|
||||
no-deepEqual: 2
|
||||
|
||||
# Global scoped method and vars
|
||||
globals:
|
||||
|
||||
32
tools/eslint-rules/no-deepEqual.js
Normal file
32
tools/eslint-rules/no-deepEqual.js
Normal file
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* @fileoverview Prohibit use of assert.deepEqual()
|
||||
* @author Rich Trott
|
||||
*
|
||||
* This rule is imperfect, but will find the most common forms of
|
||||
* assert.deepEqual() usage.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Rule Definition
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
const msg = 'assert.deepEqual() disallowed. Use assert.deepStrictEqual()';
|
||||
|
||||
function isAssert(node) {
|
||||
return node.callee.object && node.callee.object.name === 'assert';
|
||||
}
|
||||
|
||||
function isDeepEqual(node) {
|
||||
return node.callee.property && node.callee.property.name === 'deepEqual';
|
||||
}
|
||||
|
||||
module.exports = function(context) {
|
||||
return {
|
||||
'CallExpression': function(node) {
|
||||
if (isAssert(node) && isDeepEqual(node)) {
|
||||
context.report(node, msg);
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user