From 1ff6c3b635ef42a805626afcb198471bc8aec633 Mon Sep 17 00:00:00 2001 From: Renegade334 Date: Thu, 27 Nov 2025 23:37:07 +0000 Subject: [PATCH 1/2] test: lint more `assert(regexp.test(...))` cases --- test/eslint.config_partial.mjs | 4 ++-- ...test-promises-warning-on-unhandled-rejection.js | 14 ++++++++------ test/parallel/test-snapshot-eval.js | 4 ++-- test/parallel/test-tls-no-sslv3.js | 2 +- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/test/eslint.config_partial.mjs b/test/eslint.config_partial.mjs index 6ecb2405547889..e1c728e3b9b362 100644 --- a/test/eslint.config_partial.mjs +++ b/test/eslint.config_partial.mjs @@ -110,11 +110,11 @@ export default [ message: 'Calling `.catch(common.mustNotCall())` will not detect never-settling promises. Use `.then(common.mustCall())` instead.', }, { - selector: 'CallExpression[callee.type="MemberExpression"][callee.object.type="Identifier"][callee.object.name="assert"][callee.property.type="Identifier"][callee.property.name="ok"][arguments.0.type="CallExpression"][arguments.0.callee.type="MemberExpression"][arguments.0.callee.object.regex][arguments.0.callee.property.type="Identifier"][arguments.0.callee.property.name="test"]', + selector: 'CallExpression:matches([callee.type="Identifier"][callee.name="assert"], [callee.type="MemberExpression"][callee.object.type="Identifier"][callee.object.name="assert"][callee.property.type="Identifier"][callee.property.name="ok"])[arguments.0.type="CallExpression"][arguments.0.callee.type="MemberExpression"][arguments.0.callee.object.regex][arguments.0.callee.property.type="Identifier"][arguments.0.callee.property.name="test"]', message: 'Use assert.match instead', }, { - selector: 'CallExpression[callee.type="MemberExpression"][callee.object.type="Identifier"][callee.object.name="assert"][callee.property.type="Identifier"][callee.property.name="ok"][arguments.0.type="UnaryExpression"][arguments.0.operator="!"][arguments.0.argument.type="CallExpression"][arguments.0.argument.callee.type="MemberExpression"][arguments.0.argument.callee.object.regex][arguments.0.argument.callee.property.name="test"]', + selector: 'CallExpression:matches([callee.type="Identifier"][callee.name="assert"], [callee.type="MemberExpression"][callee.object.type="Identifier"][callee.object.name="assert"][callee.property.type="Identifier"][callee.property.name="ok"])[arguments.0.type="UnaryExpression"][arguments.0.operator="!"][arguments.0.argument.type="CallExpression"][arguments.0.argument.callee.type="MemberExpression"][arguments.0.argument.callee.object.regex][arguments.0.argument.callee.property.name="test"]', message: 'Use assert.doesNotMatch instead', }, ], diff --git a/test/parallel/test-promises-warning-on-unhandled-rejection.js b/test/parallel/test-promises-warning-on-unhandled-rejection.js index 0d6a74854217c8..9daa05010fa55d 100644 --- a/test/parallel/test-promises-warning-on-unhandled-rejection.js +++ b/test/parallel/test-promises-warning-on-unhandled-rejection.js @@ -18,8 +18,9 @@ process.on('warning', common.mustCall((warning) => { case 1: // Warning about rejection not being handled (will be next tick) assert.strictEqual(warning.name, 'UnhandledPromiseRejectionWarning'); - assert( - /Unhandled promise rejection/.test(warning.message), + assert.match( + warning.message, + /Unhandled promise rejection/, 'Expected warning message to contain "Unhandled promise rejection" ' + `but did not. Had "${warning.message}" instead.` ); @@ -31,8 +32,9 @@ process.on('warning', common.mustCall((warning) => { case 3: // Unhandled rejection warning (won't be handled next tick) assert.strictEqual(warning.name, 'UnhandledPromiseRejectionWarning'); - assert( - /Unhandled promise rejection/.test(warning.message), + assert.match( + warning.message, + /Unhandled promise rejection/, 'Expected warning message to contain "Unhandled promise rejection" ' + `but did not. Had "${warning.message}" instead.` ); @@ -40,8 +42,8 @@ process.on('warning', common.mustCall((warning) => { case 4: // Rejection handled asynchronously. assert.strictEqual(warning.name, 'PromiseRejectionHandledWarning'); - assert(/Promise rejection was handled asynchronously/ - .test(warning.message)); + assert.match(warning.message, + /Promise rejection was handled asynchronously/); } }, 5)); diff --git a/test/parallel/test-snapshot-eval.js b/test/parallel/test-snapshot-eval.js index 6a1b6b4e0197eb..61249cd071cb66 100644 --- a/test/parallel/test-snapshot-eval.js +++ b/test/parallel/test-snapshot-eval.js @@ -49,7 +49,7 @@ const file = fixtures.path('snapshot', 'mutate-fs.js'); console.log(child.stdout.toString()); assert.strictEqual(child.status, 0); } - assert(/I am from the snapshot/.test(child.stdout.toString())); + assert.match(child.stdout.toString(), /I am from the snapshot/); } { @@ -68,5 +68,5 @@ const file = fixtures.path('snapshot', 'mutate-fs.js'); console.log(child.stdout.toString()); assert.strictEqual(child.status, 0); } - assert(/I am from the snapshot/.test(child.stdout.toString())); + assert.match(child.stdout.toString(), /I am from the snapshot/); } diff --git a/test/parallel/test-tls-no-sslv3.js b/test/parallel/test-tls-no-sslv3.js index bccc875b22b376..c4a6e1ff7f20bb 100644 --- a/test/parallel/test-tls-no-sslv3.js +++ b/test/parallel/test-tls-no-sslv3.js @@ -46,6 +46,6 @@ process.on('exit', function() { common.printSkipMessage('`openssl s_client -ssl3` not supported.'); } else { assert.strictEqual(errors.length, 1); - assert(/:version too low/.test(errors[0].message)); + assert.match(errors[0].message, /:version too low/); } }); From 8d7cc47188bbe64c4c7284d02e54e966de0e5917 Mon Sep 17 00:00:00 2001 From: Renegade334 Date: Sat, 29 Nov 2025 14:01:07 +0000 Subject: [PATCH 2/2] fixup! test: lint more `assert(regexp.test(...))` cases --- ...t-promises-warning-on-unhandled-rejection.js | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/test/parallel/test-promises-warning-on-unhandled-rejection.js b/test/parallel/test-promises-warning-on-unhandled-rejection.js index 9daa05010fa55d..71aeb9bd5c2d50 100644 --- a/test/parallel/test-promises-warning-on-unhandled-rejection.js +++ b/test/parallel/test-promises-warning-on-unhandled-rejection.js @@ -18,12 +18,7 @@ process.on('warning', common.mustCall((warning) => { case 1: // Warning about rejection not being handled (will be next tick) assert.strictEqual(warning.name, 'UnhandledPromiseRejectionWarning'); - assert.match( - warning.message, - /Unhandled promise rejection/, - 'Expected warning message to contain "Unhandled promise rejection" ' + - `but did not. Had "${warning.message}" instead.` - ); + assert.match(warning.message, /Unhandled promise rejection/); break; case 2: // Number rejection error displayed. Note it's been stringified @@ -32,18 +27,12 @@ process.on('warning', common.mustCall((warning) => { case 3: // Unhandled rejection warning (won't be handled next tick) assert.strictEqual(warning.name, 'UnhandledPromiseRejectionWarning'); - assert.match( - warning.message, - /Unhandled promise rejection/, - 'Expected warning message to contain "Unhandled promise rejection" ' + - `but did not. Had "${warning.message}" instead.` - ); + assert.match(warning.message, /Unhandled promise rejection/); break; case 4: // Rejection handled asynchronously. assert.strictEqual(warning.name, 'PromiseRejectionHandledWarning'); - assert.match(warning.message, - /Promise rejection was handled asynchronously/); + assert.match(warning.message, /Promise rejection was handled asynchronously/); } }, 5));