diff --git a/tools/eslint-rules/must-call-assert.js b/tools/eslint-rules/must-call-assert.js index b991e29063aa..6990e526ad88 100644 --- a/tools/eslint-rules/must-call-assert.js +++ b/tools/eslint-rules/must-call-assert.js @@ -135,10 +135,11 @@ module.exports = { }); }, - [`CallExpression[callee.property.name="then"][arguments.length=1]>CallExpression:matches(${[ + // Check the call chain before searching descendants for a return. + [`:matches(CallExpression[callee.property.name="then"][arguments.length=1]>CallExpression:matches(${[ '[callee.name="mustCall"]', '[callee.object.name="common"][callee.property.name="mustCall"]', - ].join(',')})[arguments.length=1]>:has(ReturnStatement)`]: (node) => { + ].join(',')})[arguments.length=1]>*):has(ReturnStatement)`]: (node) => { context.report({ node, message: 'Cannot mix `common.mustCall` and return statement inside a `.then` chain',