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>
This commit is contained in:
Родитель
b3c1bd38f6
Коммит
c667c87528
|
@ -155,9 +155,13 @@ module.exports = {
|
|||
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]`,
|
||||
|
|
|
@ -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]"
|
||||
|
|
|
@ -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);
|
||||
})));
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче