summaryrefslogtreecommitdiff
path: root/tools/eslint-rules/prefer-common-expectserror.js
blob: f33241697a68efd7203a96ea5c2d8e08899fcbf5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
'use strict';

//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------

const msg = 'Please use common.expectsError(fn, err) instead of ' +
            'assert.throws(fn, common.expectsError(err)).';

const astSelector =
  'CallExpression[arguments.length=2]' +
                '[callee.object.name="assert"]' +
                '[callee.property.name="throws"]' +
                '[arguments.1.callee.object.name="common"]' +
                '[arguments.1.callee.property.name="expectsError"]';

module.exports = function(context) {
  return {
    [astSelector]: (node) => context.report(node, msg)
  };
};