diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2018-04-09 00:12:48 +0200 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2018-04-16 03:21:45 +0200 |
commit | f7496896c4ea088cbd5e4ed29eeecca655e1ac0b (patch) | |
tree | 81bd5282e06091cf862a0d79e3b827a8c60d70a0 | |
parent | 2c3146d06dfc1815915232eae38da3cdeaaaeb13 (diff) | |
download | android-node-v8-f7496896c4ea088cbd5e4ed29eeecca655e1ac0b.tar.gz android-node-v8-f7496896c4ea088cbd5e4ed29eeecca655e1ac0b.tar.bz2 android-node-v8-f7496896c4ea088cbd5e4ed29eeecca655e1ac0b.zip |
tools: add eslintrc rule for `assert.rejects`
This makes sure `assert.rejects` is always called with a second
argument. Besides that it is also changes a eslint error message
to suggest objects instead of a regular expression.
PR-URL: https://github.com/nodejs/node/pull/19885
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
-rw-r--r-- | .eslintrc.js | 6 | ||||
-rw-r--r-- | lib/.eslintrc.yaml | 4 | ||||
-rw-r--r-- | test/parallel/test-assert-async.js | 2 |
3 files changed, 9 insertions, 3 deletions
diff --git a/.eslintrc.js b/.eslintrc.js index 2eb3eae6a8..53d0b39d0a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -156,8 +156,12 @@ module.exports = { message: "Please replace `assert.doesNotThrow()` and add a comment next to the code instead." }, { + selector: `CallExpression[callee.object.name='assert'][callee.property.name='rejects'][arguments.length<2]`, + message: 'assert.rejects() must be invoked with at least two arguments.', + }, + { selector: `CallExpression[callee.object.name='assert'][callee.property.name='throws'][arguments.1.type='Literal']:not([arguments.1.regex])`, - message: 'use a regular expression for second argument of assert.throws()', + message: 'Use an object as second argument of assert.throws()', }, { selector: `CallExpression[callee.object.name='assert'][callee.property.name='throws'][arguments.length<2]`, diff --git a/lib/.eslintrc.yaml b/lib/.eslintrc.yaml index bf2251525e..80cada0b8c 100644 --- a/lib/.eslintrc.yaml +++ b/lib/.eslintrc.yaml @@ -4,8 +4,10 @@ rules: - error - selector: "CallExpression[callee.object.name='assert'][callee.property.name='doesNotThrow']" message: "Please replace `assert.doesNotThrow()` and add a comment next to the code instead." + - selector: "CallExpression[callee.object.name='assert'][callee.property.name='rejects'][arguments.length<2]" + message: "assert.rejects() must be invoked with at least two arguments." - selector: "CallExpression[callee.object.name='assert'][callee.property.name='throws'][arguments.1.type='Literal']:not([arguments.1.regex])" - message: "use a regular expression for second argument of assert.throws()" + message: "Use an object as second argument of assert.throws()" - selector: "CallExpression[callee.object.name='assert'][callee.property.name='throws'][arguments.length<2]" message: "assert.throws() must be invoked with at least two arguments." - selector: "CallExpression[callee.name='setTimeout'][arguments.length<2]" diff --git a/test/parallel/test-assert-async.js b/test/parallel/test-assert-async.js index 2a865c121f..00a4fe7c72 100644 --- a/test/parallel/test-assert-async.js +++ b/test/parallel/test-assert-async.js @@ -50,7 +50,7 @@ const promises = []; promises.push(assert.rejects(() => { throw THROWN_ERROR; - }).catch(common.mustCall((err) => { + }, {}).catch(common.mustCall((err) => { assert.strictEqual(err, THROWN_ERROR); }))); } |