node/tools/eslint-rules/assert-fail-single-argument.js

31 lines
814 B
JavaScript

/**
* @fileoverview Prohibit use of a single argument only in `assert.fail()`. It
* is almost always an error.
* @author Rich Trott
*/
'use strict';
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
const msg = 'assert.fail() message should be third argument';
function isAssert(node) {
return node.callee.object && node.callee.object.name === 'assert';
}
function isFail(node) {
return node.callee.property && node.callee.property.name === 'fail';
}
module.exports = function(context) {
return {
'CallExpression': function(node) {
if (isAssert(node) && isFail(node) && node.arguments.length === 1) {
context.report(node, msg);
}
}
};
};