From e8e29bdaeed52e828ae18688c8ab28a964fb857b Mon Sep 17 00:00:00 2001 From: Ben Kucera <14625260+Bkucera@users.noreply.github.com> Date: Fri, 21 Aug 2020 16:40:43 -0400 Subject: [PATCH 1/4] fix hanging on nested hook error --- packages/driver/src/cypress/runner.js | 11 +++++++---- .../cypress/integration/e2e/issue-8350.js | 19 +++++++++++++++++++ packages/runner/cypress/support/helpers.js | 5 ----- 3 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 packages/runner/cypress/integration/e2e/issue-8350.js diff --git a/packages/driver/src/cypress/runner.js b/packages/driver/src/cypress/runner.js index 2f0178aa5919..e8723a4feef4 100644 --- a/packages/driver/src/cypress/runner.js +++ b/packages/driver/src/cypress/runner.js @@ -1010,12 +1010,15 @@ const create = (specWindow, mocha, Cypress, cy) => { } const maybeHandleRetry = (runnable, err) => { + if (!err) return + const r = runnable const isHook = r.type === 'hook' const isTest = r.type === 'test' const test = getTest() || getTestFromHook(runnable, getTestById) - const isBeforeEachHook = isHook && !!r.hookName.match(/before each/) - const isAfterEachHook = isHook && !!r.hookName.match(/after each/) + const hookName = isHook && getHookName(r) + const isBeforeEachHook = isHook && !!hookName.match(/before each/) + const isAfterEachHook = isHook && !!hookName.match(/after each/) const retryAbleRunnable = isTest || isBeforeEachHook || isAfterEachHook const willRetry = (test._currentRetry < test._retries) && retryAbleRunnable @@ -1196,8 +1199,8 @@ const create = (specWindow, mocha, Cypress, cy) => { const isHook = runnable.type === 'hook' - const isAfterEachHook = isHook && runnable.hookName.match(/after each/) - const isBeforeEachHook = isHook && runnable.hookName.match(/before each/) + const isAfterEachHook = isHook && hookName.match(/after each/) + const isBeforeEachHook = isHook && hookName.match(/before each/) // if we've been told to skip hooks at a certain nested level // this happens if we're handling a runnable that is going to retry due to failing in a hook diff --git a/packages/runner/cypress/integration/e2e/issue-8350.js b/packages/runner/cypress/integration/e2e/issue-8350.js new file mode 100644 index 000000000000..47b5ecd7b184 --- /dev/null +++ b/packages/runner/cypress/integration/e2e/issue-8350.js @@ -0,0 +1,19 @@ +const { createCypress } = require('../support/helpers') +const { runIsolatedCypress } = createCypress() + +describe('issue-8350', () => { + it('does not hang on nested hook', () => { + runIsolatedCypress(() => { + before(() => { + beforeEach(() => { + }) + }) + + describe('ae inside be', () => { + it('t1', () => { + // + }) + }) + }) + }) +}) diff --git a/packages/runner/cypress/support/helpers.js b/packages/runner/cypress/support/helpers.js index dba886e316fe..e27671a81283 100644 --- a/packages/runner/cypress/support/helpers.js +++ b/packages/runner/cypress/support/helpers.js @@ -237,11 +237,6 @@ function createCypress (defaultOptions = {}) { if (testsInOwnFile) return generateMochaTestsForWin(specWindow, mochaTestsOrFile) - specWindow.before = () => {} - specWindow.beforeEach = () => {} - specWindow.afterEach = () => {} - specWindow.after = () => {} - specWindow.describe = () => {} }) cy.stub(autCypress, 'run').snapshot(enableStubSnapshots).log(false).callsFake(runIsolatedCypress) From c6b095caa6aea3cd479364f2f2f115543460dbe5 Mon Sep 17 00:00:00 2001 From: Ben Kucera <14625260+Bkucera@users.noreply.github.com> Date: Fri, 21 Aug 2020 16:56:59 -0400 Subject: [PATCH 2/4] rename e2e -> issues test folder --- .../runner/cypress/integration/{e2e => issues}/issue-8350.js | 1 + 1 file changed, 1 insertion(+) rename packages/runner/cypress/integration/{e2e => issues}/issue-8350.js (88%) diff --git a/packages/runner/cypress/integration/e2e/issue-8350.js b/packages/runner/cypress/integration/issues/issue-8350.js similarity index 88% rename from packages/runner/cypress/integration/e2e/issue-8350.js rename to packages/runner/cypress/integration/issues/issue-8350.js index 47b5ecd7b184..7356becfea23 100644 --- a/packages/runner/cypress/integration/e2e/issue-8350.js +++ b/packages/runner/cypress/integration/issues/issue-8350.js @@ -1,6 +1,7 @@ const { createCypress } = require('../support/helpers') const { runIsolatedCypress } = createCypress() +// https://github.com/cypress-io/cypress/issues/8350 describe('issue-8350', () => { it('does not hang on nested hook', () => { runIsolatedCypress(() => { From 6850de1bcecf3fdc9e0fe958bb99a180b19b08f3 Mon Sep 17 00:00:00 2001 From: Ben Kucera <14625260+Bkucera@users.noreply.github.com> Date: Fri, 21 Aug 2020 17:01:53 -0400 Subject: [PATCH 3/4] rename fixture suite --- packages/runner/cypress/integration/issues/issue-8350.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/runner/cypress/integration/issues/issue-8350.js b/packages/runner/cypress/integration/issues/issue-8350.js index 7356becfea23..d7d1908e4fc9 100644 --- a/packages/runner/cypress/integration/issues/issue-8350.js +++ b/packages/runner/cypress/integration/issues/issue-8350.js @@ -10,7 +10,7 @@ describe('issue-8350', () => { }) }) - describe('ae inside be', () => { + describe('s1', () => { it('t1', () => { // }) From 2ee35a9681d03b738d9bcfae3fbd6250b895d6ef Mon Sep 17 00:00:00 2001 From: Ben Kucera <14625260+Bkucera@users.noreply.github.com> Date: Fri, 21 Aug 2020 18:11:31 -0400 Subject: [PATCH 4/4] fix require --- packages/runner/cypress/integration/issues/issue-8350.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/runner/cypress/integration/issues/issue-8350.js b/packages/runner/cypress/integration/issues/issue-8350.js index d7d1908e4fc9..88685799a693 100644 --- a/packages/runner/cypress/integration/issues/issue-8350.js +++ b/packages/runner/cypress/integration/issues/issue-8350.js @@ -1,4 +1,4 @@ -const { createCypress } = require('../support/helpers') +const { createCypress } = require('../../support/helpers') const { runIsolatedCypress } = createCypress() // https://github.com/cypress-io/cypress/issues/8350