From f725f55d3cc583231ce4cb3b3d85149db2532259 Mon Sep 17 00:00:00 2001 From: Junyoung Yang Date: Wed, 24 Apr 2024 22:52:51 +0900 Subject: [PATCH 1/2] feat: apply no-pause rule recursively --- lib/rules/no-pause.js | 13 ++++++++----- tests/lib/rules/no-pause.js | 10 +++++++--- 2 files changed, 15 insertions(+), 8 deletions(-) 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 + } ], }) From 869638705f7b55d1eb91f60b3054a561f4914ffd Mon Sep 17 00:00:00 2001 From: Junyoung Yang Date: Wed, 24 Apr 2024 22:55:07 +0900 Subject: [PATCH 2/2] docs: update user guide --- docs/rules/no-pause.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/rules/no-pause.md b/docs/rules/no-pause.md index 49ead924..d15079dd 100644 --- a/docs/rules/no-pause.md +++ b/docs/rules/no-pause.md @@ -9,11 +9,11 @@ Examples of **incorrect** code for this rule: ```js cy.pause(); +cy.get('selector').pause(); ``` Examples of **correct** code for this rule: ```js -// only the parent cy.pause command is detected -cy.get('selector').pause(); +cy.get('selector') ```