diff --git a/lib/rules/no-pause.js b/lib/rules/no-pause.js index 93aa7f84..b7f2b511 100644 --- a/lib/rules/no-pause.js +++ b/lib/rules/no-pause.js @@ -35,12 +35,15 @@ module.exports = { } function isCypressCall (node) { - return node.callee && - node.callee.type === 'MemberExpression' && - node.callee.object.type === 'Identifier' && - node.callee.object.name === 'cy' + if (!node.callee || node.callee.type !== 'MemberExpression') { + return false; + } + if (node.callee.object.type === 'Identifier' && node.callee.object.name === 'cy') { + return true; + } + return isCypressCall(node.callee.object); } - + //---------------------------------------------------------------------- // Public //---------------------------------------------------------------------- diff --git a/tests/lib/rules/no-pause.js b/tests/lib/rules/no-pause.js index 24c2b503..5d296d1c 100644 --- a/tests/lib/rules/no-pause.js +++ b/tests/lib/rules/no-pause.js @@ -20,14 +20,18 @@ const ruleTester = new RuleTester() ruleTester.run('no-pause', rule, { valid: [ - // for now, we do not detect .pause() child command - { code: `cy.get('button').pause()`, parserOptions }, { code: `pause()`, parserOptions }, { code: `cy.get('button').dblclick()`, parserOptions }, ], - + invalid: [ { code: `cy.pause()`, parserOptions, errors }, { code: `cy.pause({ log: false })`, parserOptions, errors }, + { code: `cy.get('button').pause()`, parserOptions, errors }, + { + code: `cy.get('a').should('have.attr', 'href').and('match', /dashboard/).pause()`, + parserOptions, + errors + } ], })