From 34c8b1f884180a1d6e15807ec1aff10e14a298b2 Mon Sep 17 00:00:00 2001 From: Jim Hays Date: Wed, 11 Oct 2023 10:06:10 -0400 Subject: [PATCH 01/47] refactor: Spellcheck (#27964) Co-authored-by: Matthew Schile --- cli/lib/exec/spawn.js | 2 +- cli/lib/util.js | 2 +- cli/test/lib/cli_spec.js | 4 ++-- cli/test/lib/exec/spawn_spec.js | 2 +- cli/types/cypress.d.ts | 4 ++-- docker-compose.yml | 2 +- guides/writing-cross-platform-javascript.md | 2 +- .../scripts/copy-templates.js | 10 +++++----- .../configFileUpdater.test.ts | 6 +++--- .../config-file-updater/configFileUpdater.ts | 2 +- npm/create-cypress-tests/src/main.test.ts | 4 ++-- npm/create-cypress-tests/src/main.ts | 2 +- .../component/basic/network/2-users-fetch.cy.jsx | 2 +- npm/vite-dev-server/src/plugins/cypress.ts | 2 +- .../advanced/access-component/message.cy.js | 2 +- .../component/router-example/PizzaShop/Home.vue | 6 +++--- .../router-example/PizzaShop/toppings.js | 4 ++-- .../component/router-example/router.cy.js | 4 ++-- npm/vue/cypress/component/tailwind/redbox.cy.js | 2 +- npm/vue2/src/index.ts | 2 +- npm/webpack-preprocessor/test/unit/dist.spec.ts | 2 +- packages/app/src/debug/DebugSpec.cy.tsx | 2 +- packages/app/src/runner/iframe-model.ts | 2 +- packages/app/src/runner/index.ts | 2 +- .../src/runs/RunsConnectSuccessAlert.spec.tsx | 2 +- packages/data-context/src/index.ts | 2 +- .../data-context/src/util/config-file-updater.ts | 2 +- .../test/unit/codegen/spec-options.spec.ts | 2 +- .../test/unit/config-file-updater.spec.ts | 2 +- .../test/unit/sources/BrowserDataSource.spec.ts | 2 +- .../test/unit/sources/ProjectDataSource.spec.ts | 2 +- .../cypress/e2e/commands/actions/check.cy.js | 6 +++--- .../cypress/e2e/commands/actions/type.cy.js | 2 +- .../driver/cypress/e2e/commands/assertions.cy.js | 2 +- .../driver/cypress/e2e/commands/connectors.cy.js | 2 +- .../cypress/e2e/commands/sessions/origins.cy.ts | 2 +- .../driver/cypress/e2e/cypress/location.cy.js | 2 +- packages/driver/cypress/e2e/e2e/focus_blur.cy.js | 8 ++++---- packages/driver/cypress/fixtures/files-form.html | 2 +- packages/driver/src/cy/actionability.ts | 4 ++-- packages/driver/src/cy/commands/actions/type.ts | 2 +- packages/driver/src/cy/commands/connectors.ts | 2 +- packages/driver/src/cy/commands/files.ts | 2 +- packages/driver/src/cy/commands/navigation.ts | 2 +- .../driver/src/cy/commands/querying/querying.ts | 2 +- packages/driver/src/cy/focused.ts | 6 +++--- packages/driver/src/cy/keyboard.ts | 2 +- packages/driver/src/cypress/local_storage.ts | 2 +- packages/driver/src/dom/elements/find.ts | 6 +++--- packages/errors/index.js | 2 +- .../frontend-shared/src/components/Card.cy.tsx | 6 +++--- packages/launchpad/README.md | 2 +- .../launchpad/cypress/e2e/slow-network.cy.ts | 4 ++-- packages/launchpad/src/utils/stringToRegexp.ts | 6 +++--- .../packherd-require/src/sourcemap-support.ts | 2 +- packages/packherd-require/src/types.ts | 2 +- packages/reporter/cypress/e2e/runnables.cy.ts | 2 +- packages/reporter/src/lib/scroller.ts | 2 +- packages/reporter/src/main.scss | 2 +- packages/rewriter/lib/js-rules.ts | 2 +- packages/runner/injection/patches/cookies.ts | 2 +- packages/scaffold-config/src/detect.ts | 6 +++--- .../scaffold-config/test/unit/detect.spec.ts | 2 +- packages/server/lib/browsers/chrome.ts | 2 +- packages/server/lib/browsers/cri-client.ts | 2 +- packages/server/lib/cloud/encryption.ts | 2 +- packages/server/lib/plugins/preprocessor.js | 2 +- packages/server/lib/request.js | 2 +- packages/server/lib/server-base.ts | 2 +- packages/server/lib/util/stream_buffer.ts | 2 +- .../fixtures/server/expected_stdout_failures.txt | 2 +- .../test/unit/browsers/cdp_automation_spec.ts | 10 +++++----- packages/server/test/unit/modes/record_spec.js | 2 +- packages/server/test/unit/plugins/util_spec.js | 6 +++--- packages/server/test/unit/screenshots_spec.js | 2 +- scripts/gulp/tasks/gulpTypeHelpers.ts | 2 +- scripts/gulp/tasks/gulpUtils.ts | 8 ++++---- scripts/npm-release.js | 2 +- .../typescript_spec_support_spec.ts.js | 2 +- .../vite_dev_server_fresh_spec.ts.js | 16 ++++++++-------- .../webpack_dev_server_fresh_spec.ts.js | 16 ++++++++-------- .../project-fixtures/angular/src/app/mount.cy.ts | 2 +- .../project-fixtures/react/src/port.cy.jsx | 2 +- .../cypress/e2e/errors/unexpected.cy.js | 6 +++--- .../runner-specs/cypress/fixtures/dom.html | 2 +- .../src/app/components/signals.component.cy.ts | 2 +- system-tests/projects/e2e/csp_script_test.html | 2 +- .../with_allow_list_custom_or_true.cy.ts | 2 +- .../projects/e2e/cypress/e2e/subdomain.cy.js | 4 ++-- .../README.md | 4 ++-- .../README.md | 2 +- .../migration-component-testing/README.md | 2 +- .../migration-e2e-defaults-no-specs/README.md | 2 +- system-tests/projects/module-api/index.js | 2 +- .../tsconfig.json | 2 +- .../webpack-preprocessor-ts-loader/tsconfig.json | 2 +- .../projects/yarn-v3.1.1-pnp/yarn-3.1.1.cjs | 6 +++--- system-tests/test/deprecated_spec.ts | 6 +++--- .../test/typescript_spec_support_spec.ts | 2 +- .../test/unit/download.spec.ts | 2 +- .../v8-snapshot/src/doctor/determine-deferred.ts | 6 +++--- .../v8-snapshot/src/doctor/snapshot-doctor.ts | 8 ++++---- tooling/v8-snapshot/src/generator/blueprint.ts | 2 +- .../src/generator/create-snapshot-script.ts | 2 +- 104 files changed, 170 insertions(+), 170 deletions(-) diff --git a/cli/lib/exec/spawn.js b/cli/lib/exec/spawn.js index 096458fa5022..d158aa8eb7a9 100644 --- a/cli/lib/exec/spawn.js +++ b/cli/lib/exec/spawn.js @@ -239,7 +239,7 @@ module.exports = { return } - // if we have a callback and this explictly returns + // if we have a callback and this explicitly returns // false then bail if (onStderrData && onStderrData(str) === false) { return diff --git a/cli/lib/util.js b/cli/lib/util.js index 3a3b4399adb6..653ffdd1af0d 100644 --- a/cli/lib/util.js +++ b/cli/lib/util.js @@ -331,7 +331,7 @@ const util = { }, supportsColor () { - // if we've been explictly told not to support + // if we've been explicitly told not to support // color then turn this off if (process.env.NO_COLOR) { return false diff --git a/cli/test/lib/cli_spec.js b/cli/test/lib/cli_spec.js index 9de88e13ce0d..3e0de35ddfae 100644 --- a/cli/test/lib/cli_spec.js +++ b/cli/test/lib/cli_spec.js @@ -635,7 +635,7 @@ describe('cli', () => { expect(spawn.start.firstCall.args[0]).to.include('component') }) - it('spawns server with correct args for depricated component-testing command', () => { + it('spawns server with correct args for deprecated component-testing command', () => { this.exec('open-ct --dev') expect(spawn.start.firstCall.args[0]).to.include('--testing-type') expect(spawn.start.firstCall.args[0]).to.include('component') @@ -647,7 +647,7 @@ describe('cli', () => { expect(spawn.start.firstCall.args[0]).to.include('component') }) - it('runs server with correct args for depricated component-testing command', () => { + it('runs server with correct args for deprecated component-testing command', () => { this.exec('run-ct --dev') expect(spawn.start.firstCall.args[0]).to.include('--testing-type') expect(spawn.start.firstCall.args[0]).to.include('component') diff --git a/cli/test/lib/exec/spawn_spec.js b/cli/test/lib/exec/spawn_spec.js index ce39d1b8fa3f..6725e0c1c9c7 100644 --- a/cli/test/lib/exec/spawn_spec.js +++ b/cli/test/lib/exec/spawn_spec.js @@ -409,7 +409,7 @@ describe('lib/exec/spawn', function () { }) }) - it('inherits when on linux and xvfb isnt needed', function () { + it('inherits when on linux and xvfb isn\'t needed', function () { this.spawnedProcess.on.withArgs('close').yieldsAsync(0) os.platform.returns('linux') xvfb.isNeeded.returns(false) diff --git a/cli/types/cypress.d.ts b/cli/types/cypress.d.ts index a40f2fcdf92c..dd12cd0c6a5d 100644 --- a/cli/types/cypress.d.ts +++ b/cli/types/cypress.d.ts @@ -3318,7 +3318,7 @@ declare namespace Cypress { interface CypressComponentDependency { /** - * Unique idenitifer. + * Unique identifier. * @example 'reactscripts' */ type: string @@ -3453,7 +3453,7 @@ declare namespace Cypress { componentIndexHtml?: () => string /** - * Used for the Create From Comopnent feature. + * Used for the Create From Component feature. * This is currently not supported for third party frameworks. */ specPattern?: '**/*.cy.ts' diff --git a/docker-compose.yml b/docker-compose.yml index 83fd12748ddd..5b93acdd1ce0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,7 +11,7 @@ services: # Use Hist file from shared volume HISTFILE: /root/hist/.bash_history # Setup inspect to use the more permissive address when debugging so - # that we can connect to it from ouside the docker container + # that we can connect to it from outside the docker container CYPRESS_DOCKER_DEV_INSPECT_OVERRIDE: '0.0.0.0:5566' # This disables CI mode which causes cypress to build differently CI: '' diff --git a/guides/writing-cross-platform-javascript.md b/guides/writing-cross-platform-javascript.md index a10580903444..b2c4dbd9534e 100644 --- a/guides/writing-cross-platform-javascript.md +++ b/guides/writing-cross-platform-javascript.md @@ -40,7 +40,7 @@ path.resolve('../', '/../', '../') // 'C:\\Users' on Windows ``` -In general, you want to avoid writing file system code using `/` and `\`, and use Node.js APIs where possible - those are cross platform and guarenteed to work. +In general, you want to avoid writing file system code using `/` and `\`, and use Node.js APIs where possible - those are cross platform and guaranteed to work. ## Use Node.js Scripts diff --git a/npm/create-cypress-tests/scripts/copy-templates.js b/npm/create-cypress-tests/scripts/copy-templates.js index 89349cfe67a4..583538450087 100644 --- a/npm/create-cypress-tests/scripts/copy-templates.js +++ b/npm/create-cypress-tests/scripts/copy-templates.js @@ -17,15 +17,15 @@ program unique: true, }) - const srcOuput = './src/' - let destinationOuput = destination.replace('/\\/g', '/') + const srcOutput = './src/' + let destinationOutput = destination.replace('/\\/g', '/') - if (!destinationOuput.endsWith('/')) { - destinationOuput += '/' + if (!destinationOutput.endsWith('/')) { + destinationOutput += '/' } const relOutput = (template, forSource) => { - return `${forSource ? srcOuput : destinationOuput}${template}` + return `${forSource ? srcOutput : destinationOutput}${template}` } const result = await Promise.all(templates.map(async (template) => { diff --git a/npm/create-cypress-tests/src/component-testing/config-file-updater/configFileUpdater.test.ts b/npm/create-cypress-tests/src/component-testing/config-file-updater/configFileUpdater.test.ts index 42cfb0a72fc8..8a2dee76b5ff 100644 --- a/npm/create-cypress-tests/src/component-testing/config-file-updater/configFileUpdater.test.ts +++ b/npm/create-cypress-tests/src/component-testing/config-file-updater/configFileUpdater.test.ts @@ -43,7 +43,7 @@ describe('lib/util/config-file-updater', () => { context('with js files', () => { describe('#insertValueInJSString', () => { describe('es6 vs es5', () => { - it('finds the object litteral and adds the values to it es6', async () => { + it('finds the object literal and adds the values to it es6', async () => { const src = stripIndent`\ export default { foo: 42, @@ -63,7 +63,7 @@ describe('lib/util/config-file-updater', () => { expect(output).to.equal(expectedOutput) }) - it('finds the object litteral and adds the values to it es5', async () => { + it('finds the object literal and adds the values to it es5', async () => { const src = stripIndent`\ module.exports = { foo: 42, @@ -333,7 +333,7 @@ describe('lib/util/config-file-updater', () => { }) describe('failures', () => { - it('fails if not an object litteral', () => { + it('fails if not an object literal', () => { const src = [ 'const foo = {}', 'export default foo', diff --git a/npm/create-cypress-tests/src/component-testing/config-file-updater/configFileUpdater.ts b/npm/create-cypress-tests/src/component-testing/config-file-updater/configFileUpdater.ts index 0dcf07d6eaa1..b2e587f9ee3c 100644 --- a/npm/create-cypress-tests/src/component-testing/config-file-updater/configFileUpdater.ts +++ b/npm/create-cypress-tests/src/component-testing/config-file-updater/configFileUpdater.ts @@ -71,7 +71,7 @@ export async function insertValueInJSString (fileContents: string, obj: Record { expect(someOfSpyCallsIncludes(logSpy, 'yarn cypress open')).to.be.true }) - it('Fails if git repository have untracked or uncommited files', async () => { + it('Fails if git repository have untracked or uncommitted files', async () => { mockFsWithInitialTemplate({ '/package.json': JSON.stringify({ }), }) @@ -121,7 +121,7 @@ describe('create-cypress-tests', () => { await main({ useNpm: true, ignoreTs: false, ignoreExamples: false, setupComponentTesting: false }) expect( - someOfSpyCallsIncludes(errorSpy, 'This repository has untracked files or uncommmited changes.'), + someOfSpyCallsIncludes(errorSpy, 'This repository has untracked files or uncommitted changes.'), ).to.equal(true) expect(processExitStub).to.be.called diff --git a/npm/create-cypress-tests/src/main.ts b/npm/create-cypress-tests/src/main.ts index 818a58b94329..fc28840559e6 100644 --- a/npm/create-cypress-tests/src/main.ts +++ b/npm/create-cypress-tests/src/main.ts @@ -86,7 +86,7 @@ export async function main ({ useNpm, ignoreTs, setupComponentTesting, ignoreExa const gitStatus = await getGitStatus() if (gitStatus) { - console.error(`\n${chalk.bold.red('This repository has untracked files or uncommmited changes.')}\nThis command will ${chalk.cyan('make changes in the codebase')}, so please remove untracked files, stash or commit any changes, and try again.`) + console.error(`\n${chalk.bold.red('This repository has untracked files or uncommitted changes.')}\nThis command will ${chalk.cyan('make changes in the codebase')}, so please remove untracked files, stash or commit any changes, and try again.`) process.exit(1) } diff --git a/npm/react/cypress/component/basic/network/2-users-fetch.cy.jsx b/npm/react/cypress/component/basic/network/2-users-fetch.cy.jsx index 86dc0541282b..4737dae39598 100644 --- a/npm/react/cypress/component/basic/network/2-users-fetch.cy.jsx +++ b/npm/react/cypress/component/basic/network/2-users-fetch.cy.jsx @@ -36,7 +36,7 @@ describe('Users with Fetch', () => { .contains('foo') }) - it('can inspect mocked network reaponse', () => { + it('can inspect mocked network response', () => { const users = [{ id: 1, name: 'foo' }] cy.intercept('GET', '/users?_limit=3', users).as('users') diff --git a/npm/vite-dev-server/src/plugins/cypress.ts b/npm/vite-dev-server/src/plugins/cypress.ts index 5583cfd816ea..e0fbdd4fa1e5 100644 --- a/npm/vite-dev-server/src/plugins/cypress.ts +++ b/npm/vite-dev-server/src/plugins/cypress.ts @@ -53,7 +53,7 @@ export const Cypress = ( base = config.base }, async transformIndexHtml (html) { - // it's possibe other plugins have modified the HTML + // it's possible other plugins have modified the HTML // before we get to. For example vitejs/plugin-react will // add a preamble. We do our best to look at the HTML we // receive and inject it. diff --git a/npm/vue/cypress/component/advanced/access-component/message.cy.js b/npm/vue/cypress/component/advanced/access-component/message.cy.js index 41e969305b70..1ab4f4b1ad81 100644 --- a/npm/vue/cypress/component/advanced/access-component/message.cy.js +++ b/npm/vue/cypress/component/advanced/access-component/message.cy.js @@ -47,7 +47,7 @@ describe('Message', () => { describe('Events', () => { it('calls handleClick when click on message', () => { // need to spy on the _original_ method before it gets - // passed to the Vue.extend and gets into private closuer + // passed to the Vue.extend and gets into private closure const spy = cy.spy(Message.methods, 'handleClick') createCmp({ message: 'Cat' }) diff --git a/npm/vue/cypress/component/router-example/PizzaShop/Home.vue b/npm/vue/cypress/component/router-example/PizzaShop/Home.vue index b39c6d583f92..0d8a8b118d98 100644 --- a/npm/vue/cypress/component/router-example/PizzaShop/Home.vue +++ b/npm/vue/cypress/component/router-example/PizzaShop/Home.vue @@ -33,10 +33,10 @@ 🍖 Meatlover
- 🍍 Hawain + 🍍 Hawaiian
{ cy.get('.order-overview > ul > li').contains('cheese') }) - it('order hawaian + peppers pizza without using UI', () => { + it('order hawaiian + peppers pizza without using UI', () => { cy.wrap(Cypress.vue.$router) .then(($router) => $router.push({ name: 'home' })) .then(($router) => { return $router.push({ name: 'order', - params: { preset: 'hawaian' }, + params: { preset: 'hawaiian' }, query: { peppers: true }, }) }) diff --git a/npm/vue/cypress/component/tailwind/redbox.cy.js b/npm/vue/cypress/component/tailwind/redbox.cy.js index a4db3c614d15..01a5041a0dde 100644 --- a/npm/vue/cypress/component/tailwind/redbox.cy.js +++ b/npm/vue/cypress/component/tailwind/redbox.cy.js @@ -24,7 +24,7 @@ describe('RedBox 1', () => { it('displays red Hello RedBox', () => { mount({ template }, options) - // shoud have injected the inline styling. + // should have injected the inline styling. cy.get('style').should('contain.text', inlineStyle) cy.contains('Hello RedBox') diff --git a/npm/vue2/src/index.ts b/npm/vue2/src/index.ts index f73be7d74400..7b8c33364aea 100644 --- a/npm/vue2/src/index.ts +++ b/npm/vue2/src/index.ts @@ -320,7 +320,7 @@ function failTestOnVueError (err, vm, info) { /** * Extract the component name from the object passed to mount - * @param componentOptions the compoennt passed to mount + * @param componentOptions the component passed to mount * @returns name of the component */ function getComponentDisplayName (componentOptions: any): string { diff --git a/npm/webpack-preprocessor/test/unit/dist.spec.ts b/npm/webpack-preprocessor/test/unit/dist.spec.ts index c2271c5f3403..8fafef7a6763 100644 --- a/npm/webpack-preprocessor/test/unit/dist.spec.ts +++ b/npm/webpack-preprocessor/test/unit/dist.spec.ts @@ -1,7 +1,7 @@ const { expect } = require('chai') const preprocessor = require('../../dist/index') -describe('tyepscript ./dist output', () => { +describe('typescript ./dist output', () => { it('builds dist correctly', () => { expect(preprocessor).to.be.a('function') expect(preprocessor).to.have.property('defaultOptions') diff --git a/packages/app/src/debug/DebugSpec.cy.tsx b/packages/app/src/debug/DebugSpec.cy.tsx index 60656d8fc868..7da637e662d2 100644 --- a/packages/app/src/debug/DebugSpec.cy.tsx +++ b/packages/app/src/debug/DebugSpec.cy.tsx @@ -270,7 +270,7 @@ describe(' responsive UI', () => { }, } - const testResult: {[thumprint: string]: TestResults[]} = { + const testResult: {[thumbprint: string]: TestResults[]} = { 'abcd': [ { id: '676df87878', diff --git a/packages/app/src/runner/iframe-model.ts b/packages/app/src/runner/iframe-model.ts index bba35665919f..d249ddd7d70e 100644 --- a/packages/app/src/runner/iframe-model.ts +++ b/packages/app/src/runner/iframe-model.ts @@ -21,7 +21,7 @@ export interface AutSnapshot { viewportWidth: number url: string body: { - get: () => unknown // TOOD: find out what this is, some sort of JQuery API. + get: () => unknown // TODO: find out what this is, some sort of JQuery API. } } diff --git a/packages/app/src/runner/index.ts b/packages/app/src/runner/index.ts index 69972208c2ca..b52678be6b9d 100644 --- a/packages/app/src/runner/index.ts +++ b/packages/app/src/runner/index.ts @@ -350,7 +350,7 @@ export function getRunnerConfigFromWindow () { /** * Inject the global `UnifiedRunner` via a - + diff --git a/system-tests/projects/e2e/cypress/e2e/experimental_csp_allow_list_spec/with_allow_list_custom_or_true.cy.ts b/system-tests/projects/e2e/cypress/e2e/experimental_csp_allow_list_spec/with_allow_list_custom_or_true.cy.ts index b55415c514e3..4c326f8cdc84 100644 --- a/system-tests/projects/e2e/cypress/e2e/experimental_csp_allow_list_spec/with_allow_list_custom_or_true.cy.ts +++ b/system-tests/projects/e2e/cypress/e2e/experimental_csp_allow_list_spec/with_allow_list_custom_or_true.cy.ts @@ -70,7 +70,7 @@ describe('experimentalCspAllowList is custom or true', () => { }) it('sample: upgrade-insecure-requests is not stripped', () => { - // fake the https automatic upgrade by fulfilling the http request to the express server. verify the requests are actually upraded + // fake the https automatic upgrade by fulfilling the http request to the express server. verify the requests are actually upgraded const requestsFulfilled = { www_foobar_com_script: false, app_foobar_com_script: false, diff --git a/system-tests/projects/e2e/cypress/e2e/subdomain.cy.js b/system-tests/projects/e2e/cypress/e2e/subdomain.cy.js index 3e34565bd4f7..ade2dacfb6d4 100644 --- a/system-tests/projects/e2e/cypress/e2e/subdomain.cy.js +++ b/system-tests/projects/e2e/cypress/e2e/subdomain.cy.js @@ -45,9 +45,9 @@ describe('subdomains', () => { }).then((cookie) => { // there should have been only a single secret-session // request cookie sent on this XHR request - const occurences = Cypress._.compact(cookie.split('secret-session')) + const occurrences = Cypress._.compact(cookie.split('secret-session')) - expect(occurences).to.have.length(1) + expect(occurrences).to.have.length(1) }) }) diff --git a/system-tests/projects/migration-component-testing-customized/README.md b/system-tests/projects/migration-component-testing-customized/README.md index 41029bbf9c2d..060e22623516 100644 --- a/system-tests/projects/migration-component-testing-customized/README.md +++ b/system-tests/projects/migration-component-testing-customized/README.md @@ -1,6 +1,6 @@ # Migration Component Testing Customized -A component tesing project without e2e. We ask the users to migrate their specs manually. +A component testing project without e2e. We ask the users to migrate their specs manually. The following migration steps will be used during this migration: @@ -22,7 +22,7 @@ Since the user has a custom componentFolder and testFiles pattern, we won't ask ## Rename supportFile -Not used. `supportFile: false` is set. We woudl normally put this in your `e2e.supportFile` key. We assume a top level `supportFile` is used for E2E testing. Since this project does not have E2E configured, we just skip this step. +Not used. `supportFile: false` is set. We would normally put this in your `e2e.supportFile` key. We assume a top level `supportFile` is used for E2E testing. Since this project does not have E2E configured, we just skip this step. ## Update Config diff --git a/system-tests/projects/migration-component-testing-defaults/README.md b/system-tests/projects/migration-component-testing-defaults/README.md index 965fb84cabf2..85059abc5404 100644 --- a/system-tests/projects/migration-component-testing-defaults/README.md +++ b/system-tests/projects/migration-component-testing-defaults/README.md @@ -1,6 +1,6 @@ ## Migration Component Testing Defaults -A component tesing project without e2e, and all defaults for CT. We rename their specs for them in step 1, then we ask them to move them in step 2. +A component testing project without e2e, and all defaults for CT. We rename their specs for them in step 1, then we ask them to move them in step 2. The following migration steps will be used during this migration: diff --git a/system-tests/projects/migration-component-testing/README.md b/system-tests/projects/migration-component-testing/README.md index a2ffad210c5e..03f004f9fdf9 100644 --- a/system-tests/projects/migration-component-testing/README.md +++ b/system-tests/projects/migration-component-testing/README.md @@ -22,7 +22,7 @@ We will not require manual migration, because the user is not using the default ## Rename supportFile -Not used. `supportFile: false` is set. We woudl normally put this in your `e2e.supportFile` key. We assume a top level `supportFile` is used for E2E testing. Since this project does not have E2E configured, we just skip this step. +Not used. `supportFile: false` is set. We would normally put this in your `e2e.supportFile` key. We assume a top level `supportFile` is used for E2E testing. Since this project does not have E2E configured, we just skip this step. ## Update Config diff --git a/system-tests/projects/migration-e2e-defaults-no-specs/README.md b/system-tests/projects/migration-e2e-defaults-no-specs/README.md index 566c5b73716e..d604388ef540 100644 --- a/system-tests/projects/migration-e2e-defaults-no-specs/README.md +++ b/system-tests/projects/migration-e2e-defaults-no-specs/README.md @@ -12,7 +12,7 @@ The following migration steps will be used during this migration: ## Automatic Migration -This step is not used, since there are no spec files to rename. For this reason it's highly unlikely `cypress/integration` exists either - this is created only when the initial integration specs are scaffolded (pre 10.x behavior - we no longer scaffold thes automatically). +This step is not used, since there are no spec files to rename. For this reason it's highly unlikely `cypress/integration` exists either - this is created only when the initial integration specs are scaffolded (pre 10.x behavior - we no longer scaffold these automatically). ## Manual Files diff --git a/system-tests/projects/module-api/index.js b/system-tests/projects/module-api/index.js index f48c1923dd77..3a79bdd4e1d2 100644 --- a/system-tests/projects/module-api/index.js +++ b/system-tests/projects/module-api/index.js @@ -5,7 +5,7 @@ const cypress = require('cypress') console.log('cypress is', cypress) const onSuccess = (runResult) => { - banner('Cypresss results') + banner('Cypress results') console.log('%o', runResult) banner('Results paths') // TODO find a better way to show all available properties in the runResult object diff --git a/system-tests/projects/webpack-preprocessor-awesome-typescript-loader/tsconfig.json b/system-tests/projects/webpack-preprocessor-awesome-typescript-loader/tsconfig.json index a502e11358ec..d1004fab48cc 100644 --- a/system-tests/projects/webpack-preprocessor-awesome-typescript-loader/tsconfig.json +++ b/system-tests/projects/webpack-preprocessor-awesome-typescript-loader/tsconfig.json @@ -1,7 +1,7 @@ { // act as if we're attempting to disable source maps // and enable inline source maps. these properties - // should be overriden by our typescript monkey patching + // should be overridden by our typescript monkey patching "compilerOptions": { "sourceMap": false, "inlineSourceMap": true, diff --git a/system-tests/projects/webpack-preprocessor-ts-loader/tsconfig.json b/system-tests/projects/webpack-preprocessor-ts-loader/tsconfig.json index 5be03e5cfc92..188a0b51d73d 100644 --- a/system-tests/projects/webpack-preprocessor-ts-loader/tsconfig.json +++ b/system-tests/projects/webpack-preprocessor-ts-loader/tsconfig.json @@ -1,7 +1,7 @@ { // act as if we're attempting to disable source maps // and enable inline source maps. these properties - // should be overriden by our typescript monkey patching + // should be overridden by our typescript monkey patching "compilerOptions": { "sourceMap": false, "inlineSourceMap": true, diff --git a/system-tests/projects/yarn-v3.1.1-pnp/yarn-3.1.1.cjs b/system-tests/projects/yarn-v3.1.1-pnp/yarn-3.1.1.cjs index f5f2adca83b2..b53b7da368ef 100755 --- a/system-tests/projects/yarn-v3.1.1-pnp/yarn-3.1.1.cjs +++ b/system-tests/projects/yarn-v3.1.1-pnp/yarn-3.1.1.cjs @@ -446,7 +446,7 @@ $2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are `].join("")} `+Qa(r)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),r="";try{r=await T.readFilePromise(e,"utf8")}catch(s){}let i=this.generateLockfile(),n=ul(r,i);n!==r&&(await T.writeFilePromise(e,n),this.lockFileChecksum=D$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(gF))e.push(...o);let r=(0,r0.default)(this,e),i=cF.default.serialize(r),n=zi(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await T.mkdirPromise(v.dirname(s),{recursive:!0}),await T.writeFilePromise(s,await aUe(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath");if(!T.existsSync(n)){r&&await this.applyLightResolution();return}let s=await AUe(await T.readFilePromise(n));this.installStateChecksum=zi(s);let o=cF.default.deserialize(s);e&&typeof o.installersCustomData!="undefined"&&(this.installersCustomData=o.installersCustomData),i&&Object.assign(this,(0,r0.default)(o,gF.restoreBuildState)),r&&(o.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,r0.default)(o,gF.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ei}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile();for(let e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:r}){let i=new Set([".gitignore"]);if(!Fb(e.cwd,this.cwd)||!await T.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await T.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?r.reportError(z.IMMUTABLE_CACHE,`${Ve(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:r.reportInfo(z.UNUSED_CACHE_ENTRY,`${Ve(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await T.removePromise(l)))}n&&s!==0&&r.reportInfo(z.UNUSED_CACHE_ENTRY,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`),e.markedFiles.clear()}};function lUe({project:t,allDescriptors:e,allResolutions:r,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,volatileDescriptors:o=new Set,peerRequirements:a=new Map,report:l,tolerateMissingPackages:c=!1}){var ne;let u=new Map,g=[],f=new Map,h=new Map,p=new Map,d=new Map,m=new Map,I=new Map(t.workspaces.map(q=>{let A=q.anchoredLocator.locatorHash,V=i.get(A);if(typeof V=="undefined"){if(c)return[A,null];throw new Error("Assertion failed: The workspace should have an associated package")}return[A,ap(V)]})),B=()=>{let q=T.mktempSync(),A=v.join(q,"stacktrace.log"),V=String(g.length+1).length,W=g.map((X,F)=>`${`${F+1}.`.padStart(V," ")} ${is(X)} `).join("");throw T.writeFileSync(A,W),T.detachTemp(q),new nt(z.STACK_OVERFLOW_RESOLUTION,`Encountered a stack overflow when resolving peer dependencies; cf ${M.fromPortablePath(A)}`)},b=q=>{let A=r.get(q.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: The resolution should have been registered");let V=i.get(A);if(!V)throw new Error("Assertion failed: The package could not be found");return V},R=(q,A,V,{top:W,optional:X})=>{g.length>1e3&&B(),g.push(A);let F=H(q,A,V,{top:W,optional:X});return g.pop(),F},H=(q,A,V,{top:W,optional:X})=>{if(n.has(A.locatorHash))return;n.add(A.locatorHash),X||s.delete(A.locatorHash);let F=i.get(A.locatorHash);if(!F){if(c)return;throw new Error(`Assertion failed: The package (${lt(t.configuration,A)}) should have been registered`)}let D=[],he=[],pe=[],Ne=[],Pe=[];for(let re of Array.from(F.dependencies.values())){if(F.peerDependencies.has(re.identHash)&&F.locatorHash!==W)continue;if(hA(re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");o.delete(re.descriptorHash);let se=X;if(!se){let ee=F.dependenciesMeta.get(St(re));if(typeof ee!="undefined"){let Ue=ee.get(null);typeof Ue!="undefined"&&Ue.optional&&(se=!0)}}let be=r.get(re.descriptorHash);if(!be){if(c)continue;throw new Error(`Assertion failed: The resolution (${Xt(t.configuration,re)}) should have been registered`)}let ae=I.get(be)||i.get(be);if(!ae)throw new Error(`Assertion failed: The package (${be}, resolved from ${Xt(t.configuration,re)}) should have been registered`);if(ae.peerDependencies.size===0){R(re,ae,new Map,{top:W,optional:se});continue}let Ae=u.get(ae.locatorHash);typeof Ae=="number"&&Ae>=2&&B();let De,$,G=new Set,Ce;he.push(()=>{De=kx(re,A.locatorHash),$=Px(ae,A.locatorHash),F.dependencies.delete(re.identHash),F.dependencies.set(De.identHash,De),r.set(De.descriptorHash,$.locatorHash),e.set(De.descriptorHash,De),i.set($.locatorHash,$),D.push([ae,De,$])}),pe.push(()=>{var ee;Ce=new Map;for(let Ue of $.peerDependencies.values()){let Oe=F.dependencies.get(Ue.identHash);if(!Oe&&cp(A,Ue)&&(Oe=q),(!Oe||Oe.range==="missing:")&&$.dependencies.has(Ue.identHash)){$.peerDependencies.delete(Ue.identHash);continue}Oe||(Oe=Yt(Ue,"missing:")),$.dependencies.set(Oe.identHash,Oe),hA(Oe)&&Pl(p,Oe.descriptorHash).add($.locatorHash),f.set(Oe.identHash,Oe),Oe.range==="missing:"&&G.add(Oe.identHash),Ce.set(Ue.identHash,(ee=V.get(Ue.identHash))!=null?ee:$.locatorHash)}$.dependencies=new Map(gn($.dependencies,([Ue,Oe])=>St(Oe)))}),Ne.push(()=>{if(!i.has($.locatorHash))return;let ee=u.get(ae.locatorHash),Ue=typeof ee!="undefined"?ee+1:1;u.set(ae.locatorHash,Ue),R(De,$,Ce,{top:W,optional:se}),u.set(ae.locatorHash,Ue-1)}),Pe.push(()=>{let ee=F.dependencies.get(re.identHash);if(typeof ee=="undefined")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let Ue=r.get(ee.descriptorHash);if(typeof Ue=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Pl(m,Ue).add(A.locatorHash),!!i.has($.locatorHash)){for(let Oe of $.peerDependencies.values()){let vt=Ce.get(Oe.identHash);if(typeof vt=="undefined")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hu(pu(d,vt),St(Oe)).push($.locatorHash)}for(let Oe of G)$.dependencies.delete(Oe)}})}for(let re of[...he,...pe])re();let qe;do{qe=!0;for(let[re,se,be]of D){if(!i.has(be.locatorHash))continue;let ae=pu(h,re.locatorHash),Ae=zi(...[...be.dependencies.values()].map(Ce=>{let ee=Ce.range!=="missing:"?r.get(Ce.descriptorHash):"missing:";if(typeof ee=="undefined")throw new Error(`Assertion failed: Expected the resolution for ${Xt(t.configuration,Ce)} to have been registered`);return ee===W?`${ee} (top)`:ee}),se.identHash),De=ae.get(Ae);if(typeof De=="undefined"){ae.set(Ae,se);continue}if(De===se)continue;qe=!1,i.delete(be.locatorHash),e.delete(se.descriptorHash),r.delete(se.descriptorHash),n.delete(be.locatorHash);let $=p.get(se.descriptorHash)||[],G=[F.locatorHash,...$];p.delete(se.descriptorHash);for(let Ce of G){let ee=i.get(Ce);typeof ee!="undefined"&&ee.dependencies.set(se.identHash,De)}}}while(!qe);for(let re of[...Ne,...Pe])re()};for(let q of t.workspaces){let A=q.anchoredLocator;o.delete(q.anchoredDescriptor.descriptorHash),R(q.anchoredDescriptor,A,new Map,{top:A.locatorHash,optional:!1})}var L;(function(V){V[V.NotProvided=0]="NotProvided",V[V.NotCompatible=1]="NotCompatible"})(L||(L={}));let K=[];for(let[q,A]of m){let V=i.get(q);if(typeof V=="undefined")throw new Error("Assertion failed: Expected the root to be registered");let W=d.get(q);if(typeof W!="undefined")for(let X of A){let F=i.get(X);if(typeof F!="undefined")for(let[D,he]of W){let pe=En(D);if(F.peerDependencies.has(pe.identHash))continue;let Ne=`p${zi(X,D,q).slice(0,5)}`;a.set(Ne,{subject:X,requested:pe,rootRequester:q,allRequesters:he});let Pe=V.dependencies.get(pe.identHash);if(typeof Pe!="undefined"){let qe=b(Pe),re=(ne=qe.version)!=null?ne:"0.0.0",se=new Set;for(let ae of he){let Ae=i.get(ae);if(typeof Ae=="undefined")throw new Error("Assertion failed: Expected the link to be registered");let De=Ae.peerDependencies.get(pe.identHash);if(typeof De=="undefined")throw new Error("Assertion failed: Expected the ident to be registered");se.add(De.range)}[...se].every(ae=>{if(ae.startsWith(Yr.protocol)){if(!t.tryWorkspaceByLocator(qe))return!1;ae=ae.slice(Yr.protocol.length),(ae==="^"||ae==="~")&&(ae="*")}return lc(re,ae)})||K.push({type:1,subject:F,requested:pe,requester:V,version:re,hash:Ne,requirementCount:he.length})}else{let qe=V.peerDependenciesMeta.get(D);(qe==null?void 0:qe.optional)||K.push({type:0,subject:F,requested:pe,requester:V,hash:Ne})}}}}let J=[q=>Rx(q.subject),q=>St(q.requested),q=>`${q.type}`];for(let q of gn(K,J))switch(q.type){case 0:l==null||l.reportWarning(z.MISSING_PEER_DEPENDENCY,`${lt(t.configuration,q.subject)} doesn't provide ${Vr(t.configuration,q.requested)} (${Ve(t.configuration,q.hash,Le.CODE)}), requested by ${Vr(t.configuration,q.requester)}`);break;case 1:{let A=q.requirementCount>1?"and some of its descendants request":"requests";l==null||l.reportWarning(z.INCOMPATIBLE_PEER_DEPENDENCY,`${lt(t.configuration,q.subject)} provides ${Vr(t.configuration,q.requested)} (${Ve(t.configuration,q.hash,Le.CODE)}) with version ${fp(t.configuration,q.version)}, which doesn't satisfy what ${Vr(t.configuration,q.requester)} ${A}`)}break}K.length>0&&(l==null||l.reportWarning(z.UNNAMED,`Some peer dependencies are incorrectly met; run ${Ve(t.configuration,"yarn explain peer-requirements ",Le.CODE)} for details, where ${Ve(t.configuration,"",Le.CODE)} is the six-letter p-prefixed code`))}var Po;(function(l){l.VERSION="version",l.COMMAND_NAME="commandName",l.PLUGIN_NAME="pluginName",l.INSTALL_COUNT="installCount",l.PROJECT_COUNT="projectCount",l.WORKSPACE_COUNT="workspaceCount",l.DEPENDENCY_COUNT="dependencyCount",l.EXTENSION="packageExtension"})(Po||(Po={}));var Rd=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!T.existsSync(i),this.sendReport(r),this.startBuffer()}reportVersion(e){this.reportValue(Po.VERSION,e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue(Po.COMMAND_NAME,e||"")}reportPluginName(e){this.reportValue(Po.PLUGIN_NAME,e)}reportProject(e){this.reportEnumerator(Po.PROJECT_COUNT,e)}reportInstall(e){this.reportHit(Po.INSTALL_COUNT,e)}reportPackageExtension(e){this.reportValue(Po.EXTENSION,e)}reportWorkspaceCount(e){this.reportValue(Po.WORKSPACE_COUNT,String(e))}reportDependencyCount(e){this.reportValue(Po.DEPENDENCY_COUNT,String(e))}reportValue(e,r){Pl(this.values,e).add(r)}reportEnumerator(e,r){Pl(this.enumerators,e).add(zi(r))}reportHit(e,r="*"){let i=pu(this.hits,e),n=na(i,r,()=>0);i.set(r,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,f;let r=this.getRegistryPath(),i;try{i=T.readJsonSync(r)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{T.mkdirSync(v.dirname(r),{recursive:!0}),T.writeJsonSync(r,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=h=>iP(l,h,{configuration:this.configuration}).catch(()=>{});for(let[h,p]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(p).length===0)continue;let d=p;d.userId=h,d.reportType="primary";for(let B of Object.keys((f=d.enumerators)!=null?f:{}))d.enumerators[B]=d.enumerators[B].length;c(d);let m=new Map,I=20;for(let[B,b]of Object.entries(d.values))b.length>0&&m.set(B,b.slice(0,I));for(;m.size>0;){let B={};B.userId=h,B.reportType="secondary",B.metrics={};for(let[b,R]of m)B.metrics[b]=R.shift(),R.length===0&&m.delete(b);c(B)}}}applyChanges(){var o,a,l,c,u,g,f,h,p;let e=this.getRegistryPath(),r;try{r=T.readJsonSync(e)}catch{r={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=r.blocks=(a=r.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let d of this.hits.keys()){let m=s.hits=(c=s.hits)!=null?c:{},I=m[d]=(u=m[d])!=null?u:{};for(let[B,b]of this.hits.get(d))I[B]=((g=I[B])!=null?g:0)+b}for(let d of["values","enumerators"])for(let m of this[d].keys()){let I=s[d]=(f=s[d])!=null?f:{};I[m]=[...new Set([...(h=I[m])!=null?h:[],...(p=this[d].get(m))!=null?p:[]])]}T.mkdirSync(v.dirname(e),{recursive:!0}),T.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var fF=ie(require("child_process")),R$=ie(ml());var hF=ie(require("fs"));var Yg=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function cUe(t){let e=M.fromPortablePath(t);process.on("SIGINT",()=>{}),e?(0,fF.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:_(P({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})}):(0,fF.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:_(P({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})})}async function i0({binaryVersion:t,pluginConfiguration:e}){async function r(){let n=new oo({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:t});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var p,d,m,I,B;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(process.env.YARN_IGNORE_NODE!=="1"&&!qt.satisfiesWithPrereleases(s,o))throw new me(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let a=await fe.find(M.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),l=a.get("yarnPath"),c=a.get("ignorePath"),u=a.get("ignoreCwd"),g=M.toPortablePath(M.resolve(process.argv[1])),f=b=>T.readFilePromise(b).catch(()=>Buffer.of());if(!c&&!u&&await(async()=>l===g||Buffer.compare(...await Promise.all([f(l),f(g)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(l!==null&&!c)if(!T.existsSync(l))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${a.sources.get("yarnPath")}), but the specified location doesn't exist (${l}).`))),process.exitCode=1;else try{cUe(l)}catch(b){process.exitCode=b.code||1}else{c&&delete process.env.YARN_IGNORE_PATH,a.get("enableTelemetry")&&!R$.isCI&&process.stdout.isTTY&&(fe.telemetry=new Rd(a,"puba9cdc10ec5790a2cf4969dd413a47270")),(p=fe.telemetry)==null||p.reportVersion(t);for(let[L,K]of a.plugins.entries()){Yg.has((m=(d=L.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:d[1])!=null?m:"")&&((I=fe.telemetry)==null||I.reportPluginName(L));for(let J of K.commands||[])n.register(J)}let R=n.process(process.argv.slice(2));R.help||(B=fe.telemetry)==null||B.reportCommandName(R.path.join(" "));let H=R.cwd;if(typeof H!="undefined"&&!u){let L=(0,hF.realpathSync)(process.cwd()),K=(0,hF.realpathSync)(H);if(L!==K){process.chdir(H),await r();return}}await n.runExit(R,{cwd:M.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return r().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>T.rmtempPromise())}function F$(t){t.Command.Path=(...e)=>r=>{r.paths=r.paths||[],r.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])t.Command[e]=(...r)=>(i,n)=>{let s=t.Option[e](...r);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return t}var iC={};it(iC,{BaseCommand:()=>Be,WorkspaceRequiredError:()=>rt,getDynamicLibs:()=>Wie,getPluginConfiguration:()=>F0,main:()=>i0,openWorkspace:()=>rf,pluginCommands:()=>Yg});var Be=class extends ye{constructor(){super(...arguments);this.cwd=Y.String("--cwd",{hidden:!0})}};var rt=class extends me{constructor(e,r){let i=v.relative(e,r),n=v.join(e,Ze.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var dJe=ie(Or());Ss();var CJe=ie(gN()),Wie=()=>new Map([["@yarnpkg/cli",iC],["@yarnpkg/core",Fd],["@yarnpkg/fslib",ch],["@yarnpkg/libzip",Fp],["@yarnpkg/parsers",Hp],["@yarnpkg/shell",jp],["clipanion",vh],["semver",dJe],["typanion",lu],["yup",CJe]]);async function rf(t,e){let{project:r,workspace:i}=await Ke.find(t,e);if(!i)throw new rt(r.cwd,e);return i}var x_e=ie(Or());Ss();var k_e=ie(gN());var hL={};it(hL,{dedupeUtils:()=>zN,default:()=>Qze,suggestUtils:()=>LN});var WAe=ie(ml());var roe=ie(aC());Ss();var LN={};it(LN,{Modifier:()=>Lo,Strategy:()=>Fr,Target:()=>vr,WorkspaceModifier:()=>af,applyModifier:()=>Zse,extractDescriptorFromPath:()=>ON,extractRangeModifier:()=>Xse,fetchDescriptorFrom:()=>MN,findProjectDescriptors:()=>toe,getModifier:()=>AC,getSuggestedDescriptors:()=>lC,makeWorkspaceDescriptor:()=>eoe,toWorkspaceModifier:()=>$se});var TN=ie(Or()),L3e="workspace:",vr;(function(i){i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies"})(vr||(vr={}));var Lo;(function(i){i.CARET="^",i.TILDE="~",i.EXACT=""})(Lo||(Lo={}));var af;(function(i){i.CARET="^",i.TILDE="~",i.EXACT="*"})(af||(af={}));var Fr;(function(s){s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache"})(Fr||(Fr={}));function AC(t,e){return t.exact?Lo.EXACT:t.caret?Lo.CARET:t.tilde?Lo.TILDE:e.configuration.get("defaultSemverRangePrefix")}var T3e=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Xse(t,{project:e}){let r=t.match(T3e);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function Zse(t,e){let{protocol:r,source:i,params:n,selector:s}=S.parseRange(t.range);return TN.default.valid(s)&&(s=`${e}${t.range}`),S.makeDescriptor(t,S.makeRange({protocol:r,source:i,params:n,selector:s}))}function $se(t){switch(t){case Lo.CARET:return af.CARET;case Lo.TILDE:return af.TILDE;case Lo.EXACT:return af.EXACT;default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function eoe(t,e){return S.makeDescriptor(t.anchoredDescriptor,`${L3e}${$se(e)}`)}async function toe(t,{project:e,target:r}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(r===vr.PEER){let o=s.manifest.peerDependencies.get(t.identHash);o!==void 0&&n(o).locators.push(s.locator)}else{let o=s.manifest.dependencies.get(t.identHash),a=s.manifest.devDependencies.get(t.identHash);r===vr.DEVELOPMENT?a!==void 0?n(a).locators.push(s.locator):o!==void 0&&n(o).locators.push(s.locator):o!==void 0?n(o).locators.push(s.locator):a!==void 0&&n(a).locators.push(s.locator)}return i}async function ON(t,{cwd:e,workspace:r}){return await M3e(async i=>{v.isAbsolute(t)||(t=v.relative(r.cwd,v.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:n}=r,s=await MN(S.makeIdent(null,"archive"),t,{project:r.project,cache:i,workspace:r});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new ei,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,r.anchoredLocator,c),g=S.convertDescriptorToLocator(u),f=await l.fetch(g,c),h=await Ze.find(f.prefixPath,{baseFs:f.packageFs});if(!h.name)throw new Error("Target path doesn't have a name");return S.makeDescriptor(h.name,t)})}async function lC(t,{project:e,workspace:r,cache:i,target:n,modifier:s,strategies:o,maxResults:a=Infinity}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(t.range!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${S.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof r!="undefined"&&r!==null&&r.manifest[n].get(t.identHash)||null,c=[],u=[],g=async f=>{try{await f()}catch(h){u.push(h)}};for(let f of o){if(c.length>=a)break;switch(f){case Fr.KEEP:await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${S.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case Fr.REUSE:await g(async()=>{for(let{descriptor:h,locators:p}of(await toe(t,{project:e,target:n})).values()){if(p.length===1&&p[0].locatorHash===r.anchoredLocator.locatorHash&&o.includes(Fr.KEEP))continue;let d=`(originally used by ${S.prettyLocator(e.configuration,p[0])}`;d+=p.length>1?` and ${p.length-1} other${p.length>2?"s":""})`:")",c.push({descriptor:h,name:`Reuse ${S.prettyDescriptor(e.configuration,h)}`,reason:d})}});break;case Fr.CACHE:await g(async()=>{for(let h of e.storedDescriptors.values())h.identHash===t.identHash&&c.push({descriptor:h,name:`Reuse ${S.prettyDescriptor(e.configuration,h)}`,reason:"(already used somewhere in the lockfile)"})});break;case Fr.PROJECT:await g(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let h=e.tryWorkspaceByIdent(t);if(h===null)return;let p=eoe(h,s);c.push({descriptor:p,name:`Attach ${S.prettyDescriptor(e.configuration,p)}`,reason:`(local workspace at ${ue.pretty(e.configuration,h.relativeCwd,ue.Type.PATH)})`})});break;case Fr.LATEST:await g(async()=>{if(t.range!=="unknown")c.push({descriptor:t,name:`Use ${S.prettyRange(e.configuration,t.range)}`,reason:"(explicit range requested)"});else if(n===vr.PEER)c.push({descriptor:S.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:ue.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let h=await MN(t,"latest",{project:e,cache:i,workspace:r,preserveModifier:!1});h&&(h=Zse(h,s),c.push({descriptor:h,name:`Use ${S.prettyDescriptor(e.configuration,h)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function MN(t,e,{project:r,cache:i,workspace:n,preserveModifier:s=!0}){let o=S.makeDescriptor(t,e),a=new ei,l=r.configuration.makeFetcher(),c=r.configuration.makeResolver(),u={project:r,fetcher:l,cache:i,checksums:r.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g=_(P({},u),{resolver:c,fetchOptions:u}),f=c.bindDescriptor(o,n.anchoredLocator,g),h=await c.getCandidates(f,new Map,g);if(h.length===0)return null;let p=h[0],{protocol:d,source:m,params:I,selector:B}=S.parseRange(S.convertToManifestRange(p.reference));if(d===r.configuration.get("defaultProtocol")&&(d=null),TN.default.valid(B)&&s!==!1){let b=typeof s=="string"?s:o.range;B=Xse(b,{project:r})+B}return S.makeDescriptor(p,S.makeRange({protocol:d,source:m,params:I,selector:B}))}async function M3e(t){return await T.mktempPromise(async e=>{let r=fe.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Qt(e,{configuration:r,check:!1,immutable:!1}))})}var cC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=Y.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=Y.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=Y.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=Y.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=Y.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=Y.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=Y.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=Y.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=Y.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=Y.String("--mode",{description:"Change what artifacts installs generate",validator:Yi(li)});this.silent=Y.Boolean("--silent",{hidden:!0});this.packages=Y.Rest()}async execute(){var d;let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=(d=this.interactive)!=null?d:e.get("preferInteractive"),o=AC(this,r),a=[...s?[Fr.REUSE]:[],Fr.PROJECT,...this.cached?[Fr.CACHE]:[],Fr.LATEST],l=s?Infinity:1,c=await Promise.all(this.packages.map(async m=>{let I=m.match(/^\.{0,2}\//)?await ON(m,{cwd:this.context.cwd,workspace:i}):S.parseDescriptor(m),B=O3e(i,I,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional}),b=await lC(I,{project:r,workspace:i,cache:n,target:B,modifier:o,strategies:a,maxResults:l});return[I,b,B]})),u=await Fa.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async m=>{for(let[I,{suggestions:B,rejections:b}]of c)if(B.filter(H=>H.descriptor!==null).length===0){let[H]=b;if(typeof H=="undefined")throw new Error("Assertion failed: Expected an error to have been set");r.configuration.get("enableNetwork")?m.reportError(z.CANT_SUGGEST_RESOLUTIONS,`${S.prettyDescriptor(e,I)} can't be resolved to a satisfying range`):m.reportError(z.CANT_SUGGEST_RESOLUTIONS,`${S.prettyDescriptor(e,I)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),m.reportSeparator(),m.reportExceptionOnce(H)}});if(u.hasErrors())return u.exitCode();let g=!1,f=[],h=[];for(let[,{suggestions:m},I]of c){let B,b=m.filter(K=>K.descriptor!==null),R=b[0].descriptor,H=b.every(K=>S.areDescriptorsEqual(K.descriptor,R));b.length===1||H?B=R:(g=!0,{answer:B}=await(0,roe.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:m.map(({descriptor:K,name:J,reason:ne})=>K?{name:J,hint:ne,descriptor:K}:{name:J,hint:ne,disabled:!0}),onCancel:()=>process.exit(130),result(K){return this.find(K,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let L=i.manifest[I].get(B.identHash);(typeof L=="undefined"||L.descriptorHash!==B.descriptorHash)&&(i.manifest[I].set(B.identHash,B),this.optional&&(I==="dependencies"?i.manifest.ensureDependencyMeta(_(P({},B),{range:"unknown"})).optional=!0:I==="peerDependencies"&&(i.manifest.ensurePeerDependencyMeta(_(P({},B),{range:"unknown"})).optional=!0)),typeof L=="undefined"?f.push([i,I,B,a]):h.push([i,I,L,B]))}return await e.triggerMultipleHooks(m=>m.afterWorkspaceDependencyAddition,f),await e.triggerMultipleHooks(m=>m.afterWorkspaceDependencyReplacement,h),g&&this.context.stdout.write(` -`),(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async m=>{await r.install({cache:n,report:m,mode:this.mode})})).exitCode()}};cC.paths=[["add"]],cC.usage=ye.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});var ioe=cC;function O3e(t,e,{dev:r,peer:i,preferDev:n,optional:s}){let o=t.manifest[vr.REGULAR].has(e.identHash),a=t.manifest[vr.DEVELOPMENT].has(e.identHash),l=t.manifest[vr.PEER].has(e.identHash);if((r||i)&&o)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!i&&l)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||n)&&s)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);return i?vr.PEER:r||n?vr.DEVELOPMENT:o?vr.REGULAR:a?vr.DEVELOPMENT:vr.REGULAR}var uC=class extends Be{constructor(){super(...arguments);this.verbose=Y.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=Y.String({required:!1})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,locator:i}=await Ke.find(e,this.context.cwd);if(await r.restoreInstallState(),this.name){let o=(await Kt.getPackageAccessibleBinaries(i,{project:r})).get(this.name);if(!o)throw new me(`Couldn't find a binary named "${this.name}" for package "${S.prettyLocator(e,i)}"`);let[,a]=o;return this.context.stdout.write(`${a} +`),(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async m=>{await r.install({cache:n,report:m,mode:this.mode})})).exitCode()}};cC.paths=[["add"]],cC.usage=ye.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overridden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});var ioe=cC;function O3e(t,e,{dev:r,peer:i,preferDev:n,optional:s}){let o=t.manifest[vr.REGULAR].has(e.identHash),a=t.manifest[vr.DEVELOPMENT].has(e.identHash),l=t.manifest[vr.PEER].has(e.identHash);if((r||i)&&o)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!i&&l)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||n)&&s)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);return i?vr.PEER:r||n?vr.DEVELOPMENT:o?vr.REGULAR:a?vr.DEVELOPMENT:vr.REGULAR}var uC=class extends Be{constructor(){super(...arguments);this.verbose=Y.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=Y.String({required:!1})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,locator:i}=await Ke.find(e,this.context.cwd);if(await r.restoreInstallState(),this.name){let o=(await Kt.getPackageAccessibleBinaries(i,{project:r})).get(this.name);if(!o)throw new me(`Couldn't find a binary named "${this.name}" for package "${S.prettyLocator(e,i)}"`);let[,a]=o;return this.context.stdout.write(`${a} `),0}return(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async s=>{let o=await Kt.getPackageAccessibleBinaries(i,{project:r}),l=Array.from(o.keys()).reduce((c,u)=>Math.max(c,u.length),0);for(let[c,[u,g]]of o)s.reportJson({name:c,source:S.stringifyIdent(u),path:g});if(this.verbose)for(let[c,[u]]of o)s.reportInfo(null,`${c.padEnd(l," ")} ${S.prettyLocator(e,u)}`);else for(let c of o.keys())s.reportInfo(null,c)})).exitCode()}};uC.paths=[["bin"]],uC.usage=ye.Usage({description:"get the path to a binary script",details:` When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. @@ -704,7 +704,7 @@ ${be.map($=>`Not found: ${YA($)} To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why \` to get more information as to who depends on them. `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"]]});var Rge=dm;var BM=ie(Or()),QM=ie(require("util")),Cm=class extends Be{constructor(){super(...arguments);this.fields=Y.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd),i=typeof this.fields!="undefined"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],s=!1,o=await Fe.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async a=>{for(let l of this.packages){let c;if(l==="."){let b=r.topLevelWorkspace;if(!b.manifest.name)throw new me(`Missing 'name' field in ${M.fromPortablePath(v.join(b.cwd,wt.manifest))}`);c=S.makeDescriptor(b.manifest.name,"unknown")}else c=S.parseDescriptor(l);let u=Lt.getIdentUrl(c),g=bM(await Lt.get(u,{configuration:e,ident:c,jsonResponse:!0,customErrorMessage:Lt.customPackageError})),f=Object.keys(g.versions).sort(BM.default.compareLoose),p=g["dist-tags"].latest||f[f.length-1],d=qt.validRange(c.range);if(d){let b=BM.default.maxSatisfying(f,d);b!==null?p=b:(a.reportWarning(z.UNNAMED,`Unmet range ${S.prettyRange(e,c.range)}; falling back to the latest version`),s=!0)}else c.range!=="unknown"&&(a.reportWarning(z.UNNAMED,`Invalid range ${S.prettyRange(e,c.range)}; falling back to the latest version`),s=!0);let m=g.versions[p],I=_(P(P({},g),m),{version:p,versions:f}),B;if(i!==null){B={};for(let b of i){let R=I[b];if(typeof R!="undefined")B[b]=R;else{a.reportWarning(z.EXCEPTION,`The '${b}' field doesn't exist inside ${S.prettyIdent(e,c)}'s informations`),s=!0;continue}}}else this.json||(delete I.dist,delete I.readme,delete I.users),B=I;a.reportJson(B),this.json||n.push(B)}});QM.inspect.styles.name="cyan";for(let a of n)(a!==n[0]||s)&&this.context.stdout.write(` `),this.context.stdout.write(`${(0,QM.inspect)(a,{depth:Infinity,colors:!0,compact:!1})} -`);return o.exitCode()}};Cm.paths=[["npm","info"]],Cm.usage=ye.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command will fetch information about a package from the npm registry, and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package informations.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react 16.12.0","yarn npm info react@16.12.0"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});var Fge=Cm;function bM(t){if(Array.isArray(t)){let e=[];for(let r of t)r=bM(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let i=bM(t[r]);i&&(e[r]=i)}return e}else return t||null}var Nge=ie(aC()),mm=class extends Be{constructor(){super(...arguments);this.scope=Y.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=Y.Boolean("--publish",!1,{description:"Login to the publish registry"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=await SQ({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{let s=await i_e({registry:r,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),o=`/-/user/org.couchdb.user:${encodeURIComponent(s.name)}`,a=await Lt.put(o,s,{attemptedAs:s.name,configuration:e,registry:r,jsonResponse:!0,authType:Lt.AuthType.NO_AUTH});return await r_e(r,a.token,{configuration:e,scope:this.scope}),n.reportInfo(z.UNNAMED,"Successfully logged in")})).exitCode()}};mm.paths=[["npm","login"]],mm.usage=ye.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});var Lge=mm;async function SQ({scope:t,publish:e,configuration:r,cwd:i}){return t&&e?gr.getScopeRegistry(t,{configuration:r,type:gr.RegistryType.PUBLISH_REGISTRY}):t?gr.getScopeRegistry(t,{configuration:r}):e?gr.getPublishRegistry((await rf(r,i)).manifest,{configuration:r}):gr.getDefaultRegistry({configuration:r})}async function r_e(t,e,{configuration:r,scope:i}){let n=o=>a=>{let l=de.isIndexableObject(a)?a:{},c=l[o],u=de.isIndexableObject(c)?c:{};return _(P({},l),{[o]:_(P({},u),{npmAuthToken:e})})},s=i?{npmScopes:n(i)}:{npmRegistries:n(t)};return await fe.updateHomeConfiguration(s)}async function i_e({registry:t,report:e,stdin:r,stdout:i}){if(process.env.TEST_ENV)return{name:process.env.TEST_NPM_USER||"",password:process.env.TEST_NPM_PASSWORD||""};e.reportInfo(z.UNNAMED,`Logging in to ${t}`);let n=!1;t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(e.reportInfo(z.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),e.reportSeparator();let{username:s,password:o}=await(0,Nge.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:i},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:i}]);return e.reportSeparator(),{name:s,password:o}}var Ff=new Set(["npmAuthIdent","npmAuthToken"]),Em=class extends Be{constructor(){super(...arguments);this.scope=Y.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=Y.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=Y.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=async()=>{var l;let n=await SQ({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),s=await fe.find(this.context.cwd,this.context.plugins),o=S.makeIdent((l=this.scope)!=null?l:null,"pkg");return!gr.getAuthConfiguration(n,{configuration:s,ident:o}).get("npmAuthToken")};return(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{if(this.all&&(await n_e(),n.reportInfo(z.UNNAMED,"Successfully logged out from everything")),this.scope){await Tge("npmScopes",this.scope),await r()?n.reportInfo(z.UNNAMED,`Successfully logged out from ${this.scope}`):n.reportWarning(z.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it");return}let s=await SQ({configuration:e,cwd:this.context.cwd,publish:this.publish});await Tge("npmRegistries",s),await r()?n.reportInfo(z.UNNAMED,`Successfully logged out from ${s}`):n.reportWarning(z.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};Em.paths=[["npm","logout"]],Em.usage=ye.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});var Mge=Em;function s_e(t,e){let r=t[e];if(!de.isIndexableObject(r))return!1;let i=new Set(Object.keys(r));if([...Ff].every(s=>!i.has(s)))return!1;for(let s of Ff)i.delete(s);if(i.size===0)return t[e]=void 0,!0;let n=P({},r);for(let s of Ff)delete n[s];return t[e]=n,!0}async function n_e(){let t=e=>{let r=!1,i=de.isIndexableObject(e)?P({},e):{};i.npmAuthToken&&(delete i.npmAuthToken,r=!0);for(let n of Object.keys(i))s_e(i,n)&&(r=!0);if(Object.keys(i).length!==0)return r?i:e};return await fe.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function Tge(t,e){return await fe.updateHomeConfiguration({[t]:r=>{let i=de.isIndexableObject(r)?r:{};if(!Object.prototype.hasOwnProperty.call(i,e))return r;let n=i[e],s=de.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...Ff].every(l=>!o.has(l)))return r;for(let l of Ff)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:_(P({},i),{[e]:void 0});let a={};for(let l of Ff)a[l]=void 0;return _(P({},i),{[e]:P(P({},s),a)})}})}var Im=class extends Be{constructor(){super(...arguments);this.access=Y.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=Y.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=Y.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);if(i.manifest.private)throw new me("Private workspaces cannot be published");if(i.manifest.name===null||i.manifest.version===null)throw new me("Workspaces must have valid names and versions to be published on an external registry");await r.restoreInstallState();let n=i.manifest.name,s=i.manifest.version,o=gr.getPublishRegistry(i.manifest,{configuration:e});return(await Fe.start({configuration:e,stdout:this.context.stdout},async l=>{var c,u;if(this.tolerateRepublish)try{let g=await Lt.get(Lt.getIdentUrl(n),{configuration:e,registry:o,ident:n,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(g,"versions"))throw new nt(z.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(g.versions,s)){l.reportWarning(z.UNNAMED,`Registry already knows about version ${s}; skipping.`);return}}catch(g){if(((u=(c=g.originalError)==null?void 0:c.response)==null?void 0:u.statusCode)!==404)throw g}await Kt.maybeExecuteWorkspaceLifecycleScript(i,"prepublish",{report:l}),await za.prepareForPack(i,{report:l},async()=>{let g=await za.genPackList(i);for(let m of g)l.reportInfo(null,m);let f=await za.genPackStream(i,g),h=await de.bufferStream(f),p=await Rf.getGitHead(i.cwd),d=await Rf.makePublishBody(i,h,{access:this.access,tag:this.tag,registry:o,gitHead:p});await Lt.put(Lt.getIdentUrl(n),d,{configuration:e,registry:o,ident:n,jsonResponse:!0})}),l.reportInfo(z.UNNAMED,"Package archive published")})).exitCode()}};Im.paths=[["npm","publish"]],Im.usage=ye.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var Oge=Im;var Uge=ie(Or());var ym=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=Y.String({required:!1})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n;if(typeof this.package!="undefined")n=S.parseIdent(this.package);else{if(!i)throw new rt(r.cwd,this.context.cwd);if(!i.manifest.name)throw new me(`Missing 'name' field in ${M.fromPortablePath(v.join(i.cwd,wt.manifest))}`);n=i.manifest.name}let s=await wm(n,e),a={children:de.sortMap(Object.entries(s),([l])=>l).map(([l,c])=>({value:ue.tuple(ue.Type.RESOLUTION,{descriptor:S.makeDescriptor(n,l),locator:S.makeLocator(n,c)})}))};return Hs.emitTree(a,{configuration:e,json:this.json,stdout:this.context.stdout})}};ym.paths=[["npm","tag","list"]],ym.usage=ye.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` +`);return o.exitCode()}};Cm.paths=[["npm","info"]],Cm.usage=ye.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command will fetch information about a package from the npm registry, and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package informations.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react 16.12.0","yarn npm info react@16.12.0"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});var Fge=Cm;function bM(t){if(Array.isArray(t)){let e=[];for(let r of t)r=bM(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let i=bM(t[r]);i&&(e[r]=i)}return e}else return t||null}var Nge=ie(aC()),mm=class extends Be{constructor(){super(...arguments);this.scope=Y.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=Y.Boolean("--publish",!1,{description:"Login to the publish registry"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=await SQ({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{let s=await i_e({registry:r,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),o=`/-/user/org.couchdb.user:${encodeURIComponent(s.name)}`,a=await Lt.put(o,s,{attemptedAs:s.name,configuration:e,registry:r,jsonResponse:!0,authType:Lt.AuthType.NO_AUTH});return await r_e(r,a.token,{configuration:e,scope:this.scope}),n.reportInfo(z.UNNAMED,"Successfully logged in")})).exitCode()}};mm.paths=[["npm","login"]],mm.usage=ye.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});var Lge=mm;async function SQ({scope:t,publish:e,configuration:r,cwd:i}){return t&&e?gr.getScopeRegistry(t,{configuration:r,type:gr.RegistryType.PUBLISH_REGISTRY}):t?gr.getScopeRegistry(t,{configuration:r}):e?gr.getPublishRegistry((await rf(r,i)).manifest,{configuration:r}):gr.getDefaultRegistry({configuration:r})}async function r_e(t,e,{configuration:r,scope:i}){let n=o=>a=>{let l=de.isIndexableObject(a)?a:{},c=l[o],u=de.isIndexableObject(c)?c:{};return _(P({},l),{[o]:_(P({},u),{npmAuthToken:e})})},s=i?{npmScopes:n(i)}:{npmRegistries:n(t)};return await fe.updateHomeConfiguration(s)}async function i_e({registry:t,report:e,stdin:r,stdout:i}){if(process.env.TEST_ENV)return{name:process.env.TEST_NPM_USER||"",password:process.env.TEST_NPM_PASSWORD||""};e.reportInfo(z.UNNAMED,`Logging in to ${t}`);let n=!1;t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(e.reportInfo(z.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),e.reportSeparator();let{username:s,password:o}=await(0,Nge.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:i},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:i}]);return e.reportSeparator(),{name:s,password:o}}var Ff=new Set(["npmAuthIdent","npmAuthToken"]),Em=class extends Be{constructor(){super(...arguments);this.scope=Y.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=Y.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=Y.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=async()=>{var l;let n=await SQ({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),s=await fe.find(this.context.cwd,this.context.plugins),o=S.makeIdent((l=this.scope)!=null?l:null,"pkg");return!gr.getAuthConfiguration(n,{configuration:s,ident:o}).get("npmAuthToken")};return(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{if(this.all&&(await n_e(),n.reportInfo(z.UNNAMED,"Successfully logged out from everything")),this.scope){await Tge("npmScopes",this.scope),await r()?n.reportInfo(z.UNNAMED,`Successfully logged out from ${this.scope}`):n.reportWarning(z.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it");return}let s=await SQ({configuration:e,cwd:this.context.cwd,publish:this.publish});await Tge("npmRegistries",s),await r()?n.reportInfo(z.UNNAMED,`Successfully logged out from ${s}`):n.reportWarning(z.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};Em.paths=[["npm","logout"]],Em.usage=ye.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});var Mge=Em;function s_e(t,e){let r=t[e];if(!de.isIndexableObject(r))return!1;let i=new Set(Object.keys(r));if([...Ff].every(s=>!i.has(s)))return!1;for(let s of Ff)i.delete(s);if(i.size===0)return t[e]=void 0,!0;let n=P({},r);for(let s of Ff)delete n[s];return t[e]=n,!0}async function n_e(){let t=e=>{let r=!1,i=de.isIndexableObject(e)?P({},e):{};i.npmAuthToken&&(delete i.npmAuthToken,r=!0);for(let n of Object.keys(i))s_e(i,n)&&(r=!0);if(Object.keys(i).length!==0)return r?i:e};return await fe.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function Tge(t,e){return await fe.updateHomeConfiguration({[t]:r=>{let i=de.isIndexableObject(r)?r:{};if(!Object.prototype.hasOwnProperty.call(i,e))return r;let n=i[e],s=de.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...Ff].every(l=>!o.has(l)))return r;for(let l of Ff)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:_(P({},i),{[e]:void 0});let a={};for(let l of Ff)a[l]=void 0;return _(P({},i),{[e]:P(P({},s),a)})}})}var Im=class extends Be{constructor(){super(...arguments);this.access=Y.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=Y.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=Y.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);if(i.manifest.private)throw new me("Private workspaces cannot be published");if(i.manifest.name===null||i.manifest.version===null)throw new me("Workspaces must have valid names and versions to be published on an external registry");await r.restoreInstallState();let n=i.manifest.name,s=i.manifest.version,o=gr.getPublishRegistry(i.manifest,{configuration:e});return(await Fe.start({configuration:e,stdout:this.context.stdout},async l=>{var c,u;if(this.tolerateRepublish)try{let g=await Lt.get(Lt.getIdentUrl(n),{configuration:e,registry:o,ident:n,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(g,"versions"))throw new nt(z.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(g.versions,s)){l.reportWarning(z.UNNAMED,`Registry already knows about version ${s}; skipping.`);return}}catch(g){if(((u=(c=g.originalError)==null?void 0:c.response)==null?void 0:u.statusCode)!==404)throw g}await Kt.maybeExecuteWorkspaceLifecycleScript(i,"prepublish",{report:l}),await za.prepareForPack(i,{report:l},async()=>{let g=await za.genPackList(i);for(let m of g)l.reportInfo(null,m);let f=await za.genPackStream(i,g),h=await de.bufferStream(f),p=await Rf.getGitHead(i.cwd),d=await Rf.makePublishBody(i,h,{access:this.access,tag:this.tag,registry:o,gitHead:p});await Lt.put(Lt.getIdentUrl(n),d,{configuration:e,registry:o,ident:n,jsonResponse:!0})}),l.reportInfo(z.UNNAMED,"Package archive published")})).exitCode()}};Im.paths=[["npm","publish"]],Im.usage=ye.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overridden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var Oge=Im;var Uge=ie(Or());var ym=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=Y.String({required:!1})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n;if(typeof this.package!="undefined")n=S.parseIdent(this.package);else{if(!i)throw new rt(r.cwd,this.context.cwd);if(!i.manifest.name)throw new me(`Missing 'name' field in ${M.fromPortablePath(v.join(i.cwd,wt.manifest))}`);n=i.manifest.name}let s=await wm(n,e),a={children:de.sortMap(Object.entries(s),([l])=>l).map(([l,c])=>({value:ue.tuple(ue.Type.RESOLUTION,{descriptor:S.makeDescriptor(n,l),locator:S.makeLocator(n,c)})}))};return Hs.emitTree(a,{configuration:e,json:this.json,stdout:this.context.stdout})}};ym.paths=[["npm","tag","list"]],ym.usage=ye.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` This command will list all tags of a package from the npm registry. If the package is not specified, Yarn will default to the current workspace. @@ -712,7 +712,7 @@ ${be.map($=>`Not found: ${YA($)} This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var Hge=Bm;var Qm=class extends Be{constructor(){super(...arguments);this.package=Y.String();this.tag=Y.String()}async execute(){if(this.tag==="latest")throw new me("The 'latest' tag cannot be removed.");let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);let n=S.parseIdent(this.package),s=gr.getPublishRegistry(i.manifest,{configuration:e}),o=ue.pretty(e,this.tag,ue.Type.CODE),a=ue.pretty(e,n,ue.Type.IDENT),l=await wm(n,e);if(!Object.prototype.hasOwnProperty.call(l,this.tag))throw new me(`${o} is not a tag of package ${a}`);return(await Fe.start({configuration:e,stdout:this.context.stdout},async u=>{let g=`/-/package${Lt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Lt.del(g,{configuration:e,registry:s,ident:n,jsonResponse:!0}),u.reportInfo(z.UNNAMED,`Tag ${o} removed from package ${a}`)})).exitCode()}};Qm.paths=[["npm","tag","remove"]],Qm.usage=ye.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Gge=Qm;var bm=class extends Be{constructor(){super(...arguments);this.scope=Y.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=Y.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r;return this.scope&&this.publish?r=gr.getScopeRegistry(this.scope,{configuration:e,type:gr.RegistryType.PUBLISH_REGISTRY}):this.scope?r=gr.getScopeRegistry(this.scope,{configuration:e}):this.publish?r=gr.getPublishRegistry((await rf(e,this.context.cwd)).manifest,{configuration:e}):r=gr.getDefaultRegistry({configuration:e}),(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{var o,a;let s;try{s=await Lt.get("/-/whoami",{configuration:e,registry:r,authType:Lt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?S.makeIdent(this.scope,""):void 0})}catch(l){if(((o=l.response)==null?void 0:o.statusCode)===401||((a=l.response)==null?void 0:a.statusCode)===403){n.reportError(z.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired");return}else throw l}n.reportInfo(z.UNNAMED,s.username)})).exitCode()}};bm.paths=[["npm","whoami"]],bm.usage=ye.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var jge=bm;var o_e={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:ge.STRING,default:null}},commands:[Rge,Fge,Lge,Mge,Oge,Hge,Kge,Gge,jge]},a_e=o_e;var NM={};it(NM,{default:()=>B_e,patchUtils:()=>SM});var SM={};it(SM,{applyPatchFile:()=>PQ,diffFolders:()=>DM,extractPackageToDisk:()=>PM,extractPatchFlags:()=>Xge,isParentRequired:()=>kM,loadPatchFiles:()=>km,makeDescriptor:()=>I_e,makeLocator:()=>xM,parseDescriptor:()=>Sm,parseLocator:()=>xm,parsePatchFile:()=>kQ});var vm=class extends Error{constructor(e,r){super(`Cannot apply hunk #${e+1}`);this.hunk=r}};var A_e=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Nf(t){return v.relative(Se.root,v.resolve(Se.root,M.toPortablePath(t)))}function l_e(t){let e=t.trim().match(A_e);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var c_e=420,u_e=493,Lr;(function(i){i.Context="context",i.Insertion="insertion",i.Deletion="deletion"})(Lr||(Lr={}));var Yge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),g_e=t=>({header:l_e(t),parts:[]}),f_e={["@"]:"header",["-"]:Lr.Deletion,["+"]:Lr.Insertion,[" "]:Lr.Context,["\\"]:"pragma",undefined:Lr.Context};function p_e(t){let e=[],r=Yge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),r.hunks.push(n),n=null)}function a(){o(),e.push(r),r=Yge()}for(let l=0;l0?"patch":"mode change",B=null;switch(I){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Nf(u),toPath:Nf(g)}),B=g}break;case"file deletion":{let b=n||p;if(!b)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:m&&m[0]||null,path:Nf(b),mode:xQ(l),hash:f})}break;case"file creation":{let b=s||d;if(!b)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:m&&m[0]||null,path:Nf(b),mode:xQ(c),hash:h})}break;case"patch":case"mode change":B=d||s;break;default:de.assertNever(I);break}B&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Nf(B),oldMode:xQ(o),newMode:xQ(a)}),B&&m&&m.length&&e.push({type:"patch",semverExclusivity:i,path:Nf(B),hunks:m,beforeHash:f,afterHash:h})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function xQ(t){let e=parseInt(t,8)&511;if(e!==c_e&&e!==u_e)throw new Error(`Unexpected file mode string: ${t}`);return e}function kQ(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),d_e(p_e(e))}function h_e(t){let e=0,r=0;for(let{type:i,lines:n}of t.parts)switch(i){case Lr.Context:r+=n.length,e+=n.length;break;case Lr.Deletion:e+=n.length;break;case Lr.Insertion:r+=n.length;break;default:de.assertNever(i);break}if(e!==t.header.original.length||r!==t.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(t.header.original.length)} ${i(t.header.patched.length)} @@, got @@ ${i(e)} ${i(r)} @@)`)}}async function Lf(t,e,r){let i=await t.lstatPromise(e),n=await r();if(typeof n!="undefined"&&(e=n),t.lutimesPromise)await t.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await t.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function PQ(t,{baseFs:e=new Wt,dryRun:r=!1,version:i=null}={}){for(let n of t)if(!(n.semverExclusivity!==null&&i!==null&&!qt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(r){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await Lf(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(r){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await Lf(e,v.dirname(n.fromPath),async()=>{await Lf(e,v.dirname(n.toPath),async()=>{await Lf(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(r){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Gge=Qm;var bm=class extends Be{constructor(){super(...arguments);this.scope=Y.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=Y.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r;return this.scope&&this.publish?r=gr.getScopeRegistry(this.scope,{configuration:e,type:gr.RegistryType.PUBLISH_REGISTRY}):this.scope?r=gr.getScopeRegistry(this.scope,{configuration:e}):this.publish?r=gr.getPublishRegistry((await rf(e,this.context.cwd)).manifest,{configuration:e}):r=gr.getDefaultRegistry({configuration:e}),(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{var o,a;let s;try{s=await Lt.get("/-/whoami",{configuration:e,registry:r,authType:Lt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?S.makeIdent(this.scope,""):void 0})}catch(l){if(((o=l.response)==null?void 0:o.statusCode)===401||((a=l.response)==null?void 0:a.statusCode)===403){n.reportError(z.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired");return}else throw l}n.reportInfo(z.UNNAMED,s.username)})).exitCode()}};bm.paths=[["npm","whoami"]],bm.usage=ye.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overridden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var jge=bm;var o_e={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:ge.STRING,default:null}},commands:[Rge,Fge,Lge,Mge,Oge,Hge,Kge,Gge,jge]},a_e=o_e;var NM={};it(NM,{default:()=>B_e,patchUtils:()=>SM});var SM={};it(SM,{applyPatchFile:()=>PQ,diffFolders:()=>DM,extractPackageToDisk:()=>PM,extractPatchFlags:()=>Xge,isParentRequired:()=>kM,loadPatchFiles:()=>km,makeDescriptor:()=>I_e,makeLocator:()=>xM,parseDescriptor:()=>Sm,parseLocator:()=>xm,parsePatchFile:()=>kQ});var vm=class extends Error{constructor(e,r){super(`Cannot apply hunk #${e+1}`);this.hunk=r}};var A_e=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Nf(t){return v.relative(Se.root,v.resolve(Se.root,M.toPortablePath(t)))}function l_e(t){let e=t.trim().match(A_e);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var c_e=420,u_e=493,Lr;(function(i){i.Context="context",i.Insertion="insertion",i.Deletion="deletion"})(Lr||(Lr={}));var Yge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),g_e=t=>({header:l_e(t),parts:[]}),f_e={["@"]:"header",["-"]:Lr.Deletion,["+"]:Lr.Insertion,[" "]:Lr.Context,["\\"]:"pragma",undefined:Lr.Context};function p_e(t){let e=[],r=Yge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),r.hunks.push(n),n=null)}function a(){o(),e.push(r),r=Yge()}for(let l=0;l0?"patch":"mode change",B=null;switch(I){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Nf(u),toPath:Nf(g)}),B=g}break;case"file deletion":{let b=n||p;if(!b)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:m&&m[0]||null,path:Nf(b),mode:xQ(l),hash:f})}break;case"file creation":{let b=s||d;if(!b)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:m&&m[0]||null,path:Nf(b),mode:xQ(c),hash:h})}break;case"patch":case"mode change":B=d||s;break;default:de.assertNever(I);break}B&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Nf(B),oldMode:xQ(o),newMode:xQ(a)}),B&&m&&m.length&&e.push({type:"patch",semverExclusivity:i,path:Nf(B),hunks:m,beforeHash:f,afterHash:h})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function xQ(t){let e=parseInt(t,8)&511;if(e!==c_e&&e!==u_e)throw new Error(`Unexpected file mode string: ${t}`);return e}function kQ(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),d_e(p_e(e))}function h_e(t){let e=0,r=0;for(let{type:i,lines:n}of t.parts)switch(i){case Lr.Context:r+=n.length,e+=n.length;break;case Lr.Deletion:e+=n.length;break;case Lr.Insertion:r+=n.length;break;default:de.assertNever(i);break}if(e!==t.header.original.length||r!==t.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(t.header.original.length)} ${i(t.header.patched.length)} @@, got @@ ${i(e)} ${i(r)} @@)`)}}async function Lf(t,e,r){let i=await t.lstatPromise(e),n=await r();if(typeof n!="undefined"&&(e=n),t.lutimesPromise)await t.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await t.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function PQ(t,{baseFs:e=new Wt,dryRun:r=!1,version:i=null}={}){for(let n of t)if(!(n.semverExclusivity!==null&&i!==null&&!qt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(r){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await Lf(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(r){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await Lf(e,v.dirname(n.fromPath),async()=>{await Lf(e,v.dirname(n.toPath),async()=>{await Lf(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(r){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` `)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` `):"";await e.mkdirpPromise(v.dirname(n.path),{chmod:493,utimes:[mr.SAFE_TIME,mr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,mr.SAFE_TIME,mr.SAFE_TIME)}break;case"patch":await Lf(e,n.path,async()=>{await C_e(n,{baseFs:e,dryRun:r})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(qge(n.newMode)!==qge(o))continue;await Lf(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:de.assertNever(n);break}}function qge(t){return(t&64)>0}function Jge(t){return t.replace(/\s+$/,"")}function m_e(t,e){return Jge(t)===Jge(e)}async function C_e({hunks:t,path:e},{baseFs:r,dryRun:i=!1}){let n=await r.statSync(e).mode,o=(await r.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of t){let f=Math.max(c,g.header.patched.start+l),h=Math.max(0,f-c),p=Math.max(0,o.length-f-g.header.original.length),d=Math.max(h,p),m=0,I=0,B=null;for(;m<=d;){if(m<=h&&(I=f-m,B=Wge(g,o,I),B!==null)){m=-m;break}if(m<=p&&(I=f+m,B=Wge(g,o,I),B!==null))break;m+=1}if(B===null)throw new vm(t.indexOf(g),g);a.push(B),l+=m,c=I+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let f of g)switch(f.type){case"splice":{let h=f.index+u;o.splice(h,f.numToDelete,...f.linesToInsert),u+=f.linesToInsert.length-f.numToDelete}break;case"pop":o.pop();break;case"push":o.push(f.line);break;default:de.assertNever(f);break}await r.writeFilePromise(e,o.join(` `),{mode:n})}function Wge(t,e,r){let i=[];for(let n of t.parts)switch(n.type){case Lr.Context:case Lr.Deletion:{for(let s of n.lines){let o=e[r];if(o==null||!m_e(o,s))return null;r+=1}n.type===Lr.Deletion&&(i.push({type:"splice",index:r-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case Lr.Insertion:i.push({type:"splice",index:r,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:de.assertNever(n.type);break}return i}var E_e=/^builtin<([^>]+)>$/;function zge(t,e){let{source:r,selector:i,params:n}=S.parseRange(t);if(r===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>M.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?S.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(r);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function Sm(t){let i=zge(t.range,S.parseDescriptor),{sourceItem:e}=i,r=qr(i,["sourceItem"]);return _(P({},r),{sourceDescriptor:e})}function xm(t){let i=zge(t.reference,S.parseLocator),{sourceItem:e}=i,r=qr(i,["sourceItem"]);return _(P({},r),{sourceLocator:e})}function Vge({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:i,patchHash:n},s){let o=t!==null?{locator:S.stringifyLocator(t)}:{},a=typeof i!="undefined"?{version:i}:{},l=typeof n!="undefined"?{hash:n}:{};return S.makeRange({protocol:"patch:",source:s(e),selector:r.join("&"),params:P(P(P({},a),l),o)})}function I_e(t,{parentLocator:e,sourceDescriptor:r,patchPaths:i}){return S.makeLocator(t,Vge({parentLocator:e,sourceItem:r,patchPaths:i},S.stringifyDescriptor))}function xM(t,{parentLocator:e,sourcePackage:r,patchPaths:i,patchHash:n}){return S.makeLocator(t,Vge({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:i,patchHash:n},S.stringifyLocator))}function _ge({onAbsolute:t,onRelative:e,onBuiltin:r},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(E_e);return s!==null?r(s[1]):v.isAbsolute(i)?t(i):e(i)}function Xge(t){let e=t.startsWith("~");return e&&(t=t.slice(1)),{optional:e}}function kM(t){return _ge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},t)}async function km(t,e,r){let i=t!==null?await r.fetcher.fetch(t,r):null,n=i&&i.localPath?{packageFs:new Ft(Se.root),prefixPath:v.relative(Se.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await de.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=Xge(o),l=await _ge({onAbsolute:async()=>await T.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await r.project.configuration.firstHook(u=>u.getBuiltinPatch,r.project,c)},o);return _(P({},a),{source:l})})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` diff --git a/system-tests/test/deprecated_spec.ts b/system-tests/test/deprecated_spec.ts index fc59fb25190b..94b7549e4af2 100644 --- a/system-tests/test/deprecated_spec.ts +++ b/system-tests/test/deprecated_spec.ts @@ -45,7 +45,7 @@ describe('deprecated before:browser:launch args', () => { systemTests.it('using non-deprecated API - no warning', { // TODO: implement webPreferences.additionalArgs here - // once we decide if/what we're going to make the implemenation + // once we decide if/what we're going to make the implementation // SUGGESTION: add this to Cypress.browser.args which will capture // whatever args we use to launch the browser browser: '!webkit', // throws in WebKit since it rejects unsupported arguments @@ -69,7 +69,7 @@ describe('deprecated before:browser:launch args', () => { systemTests.it('concat return returns once', { // TODO: implement webPreferences.additionalArgs here - // once we decide if/what we're going to make the implemenation + // once we decide if/what we're going to make the implementation // SUGGESTION: add this to Cypress.browser.args which will capture // whatever args we use to launch the browser browser: '!webkit', // throws in WebKit since it rejects unsupported arguments @@ -95,7 +95,7 @@ describe('deprecated before:browser:launch args', () => { // https://github.com/cypress-io/cypress/issues/20436 systemTests.it.skip('no mutate return', { // TODO: implement webPreferences.additionalArgs here - // once we decide if/what we're going to make the implemenation + // once we decide if/what we're going to make the implementation // SUGGESTION: add this to Cypress.browser.args which will capture // whatever args we use to launch the browser config: { diff --git a/system-tests/test/typescript_spec_support_spec.ts b/system-tests/test/typescript_spec_support_spec.ts index 67dea370a346..e6308d13d502 100644 --- a/system-tests/test/typescript_spec_support_spec.ts +++ b/system-tests/test/typescript_spec_support_spec.ts @@ -31,7 +31,7 @@ describe('e2e typescript in spec and support file', function () { }) }) - it('project wtih custom supportFile passes', function () { + it('project with custom supportFile passes', function () { return systemTests.exec(this, { project: 'ts-proj-custom-names', snapshot: true, diff --git a/tooling/electron-mksnapshot/test/unit/download.spec.ts b/tooling/electron-mksnapshot/test/unit/download.spec.ts index 342f8494c258..069aeeecc7a9 100644 --- a/tooling/electron-mksnapshot/test/unit/download.spec.ts +++ b/tooling/electron-mksnapshot/test/unit/download.spec.ts @@ -34,7 +34,7 @@ describe('download', () => { const file = await attemptDownload(version, false) - expect(file.startsWith(`mksnapshot-v${version}`), `downloads correcly versioned ${file}`).to.be.true + expect(file.startsWith(`mksnapshot-v${version}`), `downloads correctly versioned ${file}`).to.be.true }) }) }) diff --git a/tooling/v8-snapshot/src/doctor/determine-deferred.ts b/tooling/v8-snapshot/src/doctor/determine-deferred.ts index ff8929a69a81..26dacd4ff0f6 100644 --- a/tooling/v8-snapshot/src/doctor/determine-deferred.ts +++ b/tooling/v8-snapshot/src/doctor/determine-deferred.ts @@ -95,14 +95,14 @@ export async function determineDeferred ( const { deferred: updatedDeferred, norewrite: updatedNorewrite, - healthy: updatedHealty, + healthy: updatedHealthy, } = await doctor.heal() const deferredHashFile = path.relative(projectBaseDir, hashFilePath) const updatedMeta = { norewrite: opts.nodeModulesOnly ? [...updatedNorewrite, ...projectNoRewrite] : updatedNorewrite, deferred: opts.nodeModulesOnly ? [...updatedDeferred, ...projectDeferred] : updatedDeferred, - healthy: opts.nodeModulesOnly ? [...updatedHealty, ...projectHealthy] : updatedHealty, + healthy: opts.nodeModulesOnly ? [...updatedHealthy, ...projectHealthy] : updatedHealthy, deferredHashFile, deferredHash: currentHash, } @@ -122,7 +122,7 @@ export async function determineDeferred ( return { norewrite: updatedNorewrite, deferred: updatedDeferred, - healthy: updatedHealty, + healthy: updatedHealthy, } } diff --git a/tooling/v8-snapshot/src/doctor/snapshot-doctor.ts b/tooling/v8-snapshot/src/doctor/snapshot-doctor.ts index 03f620c447dd..5a1e903d5e65 100644 --- a/tooling/v8-snapshot/src/doctor/snapshot-doctor.ts +++ b/tooling/v8-snapshot/src/doctor/snapshot-doctor.ts @@ -88,7 +88,7 @@ class HealState { * 3. Repeat 2. with updated `handled` Set until no all `entries` have ben * added * - * @param meta module metatdata which contains information about which other + * @param meta module metadata which contains information about which other * modules a module imports * * @param entries all modules that we need to handle @@ -143,7 +143,7 @@ function sortModulesByLeafness ( * Sorts all modules by leafness and filters out any module that is not part of * `deferred` modules. * - * @param meta module metatdata which contains information about which other + * @param meta module metadata which contains information about which other * modules a module imports * * @param entries all modules that we need to handle @@ -221,13 +221,13 @@ function unpathify (keys: Set) { * - `norewrite`: modules that should not be rewritten when generating the * snapshot script as * - `deferred`: modules that need to be deferred, that is they can not be - * initialized during snapshot inialization + * initialized during snapshot initialization * - `healthy`: modules that can be fully initialized during snapshot * initialization * - `deferredHashFile`: the file use to derive at the current project state * hash, usually the local `yarn.lock` * - `deferredHash`: the hash of the `deferredHashFile` at the time that this - * metatdata was generated + * metadata was generated * * The `hash` related properties tell the snapshot doctor for future runs if * the metadata can be used as is since the project state didn't change, i.e. diff --git a/tooling/v8-snapshot/src/generator/blueprint.ts b/tooling/v8-snapshot/src/generator/blueprint.ts index 6d82f5bfc954..c3dd10122092 100644 --- a/tooling/v8-snapshot/src/generator/blueprint.ts +++ b/tooling/v8-snapshot/src/generator/blueprint.ts @@ -64,7 +64,7 @@ const pathSep = path.sep === '\\' ? '\\\\' : path.sep * When rendering the snapshot script we take care of the following * (in order of occurrence in the rendered script): * - * 1. We embedd the path separator so that we have it available inside the + * 1. We embed the path separator so that we have it available inside the * snapshot without having to refer to the `path` module * * 2. We also include helper methods like `cannotAccess` which are invoked diff --git a/tooling/v8-snapshot/src/generator/create-snapshot-script.ts b/tooling/v8-snapshot/src/generator/create-snapshot-script.ts index d16180667ceb..348e45c46171 100644 --- a/tooling/v8-snapshot/src/generator/create-snapshot-script.ts +++ b/tooling/v8-snapshot/src/generator/create-snapshot-script.ts @@ -153,7 +153,7 @@ export function assembleScript ( const auxiliaryDataString = JSON.stringify(auxiliaryData) // 2. Determine the path of the main module which needs to be required in - // order to trigger initialization o the modules we want to embedd during + // order to trigger initialization of the modules we want to embed during // snapshot creation const mainModuleRequirePath = opts.entryPoint ?? getMainModuleRequirePath(basedir, entryFilePath) From 093d78a5c2f89643358c2ca330b9c807393983fd Mon Sep 17 00:00:00 2001 From: Abhisar Yadav <112550486+abhisar-yadav@users.noreply.github.com> Date: Wed, 11 Oct 2023 19:36:27 +0530 Subject: [PATCH 02/47] docs: update code of conduct (#27988) Co-authored-by: Matt Schile --- CODE_OF_CONDUCT.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index cb65de563b27..2e9de1053570 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -2,7 +2,7 @@ ## Our Pledge -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards @@ -20,13 +20,13 @@ Examples of unacceptable behavior by participants include: * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting +* Other conduct that could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned with this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope From 5efecf9a4a72fbb0199a23917623218b843bd97c Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Wed, 11 Oct 2023 12:36:21 -0500 Subject: [PATCH 03/47] chore: fix problem with single tab run mode introduced by #27786 (#28032) * chore: fix problem introduced by * Update packages/server/lib/modes/run.ts --- packages/server/lib/modes/run.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/server/lib/modes/run.ts b/packages/server/lib/modes/run.ts index 2dbee21338a6..77719b283b4d 100644 --- a/packages/server/lib/modes/run.ts +++ b/packages/server/lib/modes/run.ts @@ -545,10 +545,10 @@ function waitForSocketConnection (project: Project, id: string) { }) } -async function waitForTestsToFinishRunning (options: { project: Project, screenshots: ScreenshotMetadata[], videoCompression: number | boolean, exit: boolean, spec: SpecWithRelativeRoot, estimated: number, quiet: boolean, config: Cfg, shouldKeepTabOpen: boolean, testingType: TestingType, videoRecording?: VideoRecording, protocolManager?: ProtocolManager }) { +async function waitForTestsToFinishRunning (options: { project: Project, screenshots: ScreenshotMetadata[], videoCompression: number | boolean, exit: boolean, spec: SpecWithRelativeRoot, estimated: number, quiet: boolean, config: Cfg, shouldKeepTabOpen: boolean, isLastSpec: boolean, testingType: TestingType, videoRecording?: VideoRecording, protocolManager?: ProtocolManager }) { if (globalThis.CY_TEST_MOCK?.waitForTestsToFinishRunning) return Promise.resolve(globalThis.CY_TEST_MOCK.waitForTestsToFinishRunning) - const { project, screenshots, videoRecording, videoCompression, exit, spec, estimated, quiet, config, shouldKeepTabOpen, testingType, protocolManager } = options + const { project, screenshots, videoRecording, videoCompression, exit, spec, estimated, quiet, config, shouldKeepTabOpen, isLastSpec, testingType, protocolManager } = options const results = await listenForProjectEnd(project, exit) @@ -644,12 +644,12 @@ async function waitForTestsToFinishRunning (options: { project: Project, screens // @ts-expect-error experimentalSingleTabRunMode only exists on the CT-specific config type const usingExperimentalSingleTabMode = testingType === 'component' && config.experimentalSingleTabRunMode - if (usingExperimentalSingleTabMode) { + if (usingExperimentalSingleTabMode && !isLastSpec) { await project.server.destroyAut() } - // we do not support experimentalSingleTabRunMode for e2e - if (!usingExperimentalSingleTabMode) { + // we do not support experimentalSingleTabRunMode for e2e. We always want to close the tab on the last spec to ensure that things get cleaned up properly at the end of the run + if (!usingExperimentalSingleTabMode || isLastSpec) { debug('attempting to close the browser tab') await openProject.resetBrowserTabsForNextTest(shouldKeepTabOpen) @@ -920,6 +920,7 @@ async function runSpec (config, spec: SpecWithRelativeRoot, options: { project: videoCompression: options.videoCompression, quiet: options.quiet, shouldKeepTabOpen: !isLastSpec, + isLastSpec, protocolManager: options.protocolManager, }), waitForBrowserToConnect({ From 4e720c8ebfecec89af79b207aab5f9b67a0d5505 Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Wed, 11 Oct 2023 15:27:27 -0500 Subject: [PATCH 04/47] chore: fix types breaking due to exposing too much inside of protocol.ts (#28035) --- packages/types/src/protocol.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/types/src/protocol.ts b/packages/types/src/protocol.ts index f6737c7e1454..e1c8e425201c 100644 --- a/packages/types/src/protocol.ts +++ b/packages/types/src/protocol.ts @@ -2,7 +2,7 @@ import type { Database } from 'better-sqlite3' import type ProtocolMapping from 'devtools-protocol/types/protocol-mapping' import type { IncomingHttpHeaders } from 'http' import type { Readable } from 'stream' -import type { ProxyTimings } from '@packages/types' +import type { ProxyTimings } from './proxy' type Commands = ProtocolMapping.Commands type Command = Commands[T] From 6373930c8e3f693ca757d7cd47d7ddab271fbbff Mon Sep 17 00:00:00 2001 From: Dave Kasper Date: Wed, 11 Oct 2023 16:18:56 -0500 Subject: [PATCH 05/47] chore: release 13.3.1 (#28022) * chore: release 13.3.1 * bump cypress-example-kitchensink version * fix changelog * use consistent punctuation in changelog --------- Co-authored-by: astone123 --- cli/CHANGELOG.md | 6 +++--- package.json | 2 +- packages/example/package.json | 2 +- yarn.lock | 18 +++++++++--------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index ea500ae914d3..a8aaa68ab025 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,16 +1,16 @@ ## 13.3.1 -_Released 10/03/2023 (PENDING)_ +_Released 10/11/2023_ **Bugfixes:** - Fixed an issue where requests were correlated in the wrong order in the proxy. This could cause an issue where the wrong request is used for `cy.intercept` or assets (e.g. stylesheets or images) may not properly be available in Test Replay. Addressed in [#27892](https://github.com/cypress-io/cypress/pull/27892). - Fixed an issue where a crashed Chrome renderer can cause the Test Replay recorder to hang. Addressed in [#27909](https://github.com/cypress-io/cypress/pull/27909). - Fixed an issue where multiple responses yielded from calls to `cy.wait()` would sometimes be out of order. Fixes [#27337](https://github.com/cypress-io/cypress/issues/27337). -- Fixed an issue where requests were timing out in the proxy. This could cause an issue where the wrong request is used for `cy.intercept` or assets (e.g. stylesheets or images) may not properly be available in Test Replay. Addressed in [#27976](https://github.com/cypress-io/cypress/pull/27976) +- Fixed an issue where requests were timing out in the proxy. This could cause an issue where the wrong request is used for `cy.intercept` or assets (e.g. stylesheets or images) may not properly be available in Test Replay. Addressed in [#27976](https://github.com/cypress-io/cypress/pull/27976). - Fixed an issue where Test Replay couldn't record tests due to issues involving `GLIBC`. Fixed deprecation warnings during the rebuild of better-sqlite3. Fixes [#27891](https://github.com/cypress-io/cypress/issues/27891) and [#27902](https://github.com/cypress-io/cypress/issues/27902). -- Enables test replay for executed specs in runs that have a spec that causes a browser crash. Addressed in [#27786](https://github.com/cypress-io/cypress/pull/27786) +- Enables test replay for executed specs in runs that have a spec that causes a browser crash. Addressed in [#27786](https://github.com/cypress-io/cypress/pull/27786). ## 13.3.0 diff --git a/package.json b/package.json index 7a6d45592741..431e39aa4e18 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cypress", - "version": "13.3.0", + "version": "13.3.1", "description": "Cypress is a next generation front end testing tool built for the modern web", "private": true, "scripts": { diff --git a/packages/example/package.json b/packages/example/package.json index 8d9a653b3509..4879017cfecb 100644 --- a/packages/example/package.json +++ b/packages/example/package.json @@ -15,7 +15,7 @@ }, "devDependencies": { "cross-env": "6.0.3", - "cypress-example-kitchensink": "1.17.1", + "cypress-example-kitchensink": "2.0.0", "gh-pages": "5.0.0", "gulp": "4.0.2", "gulp-clean": "0.4.0", diff --git a/yarn.lock b/yarn.lock index 76cda1febb97..be736f419ee4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11982,13 +11982,13 @@ cypress-each@^1.11.0: resolved "https://registry.yarnpkg.com/cypress-each/-/cypress-each-1.11.0.tgz#013c9b43a950f157bcf082d4bd0bb424fb370441" integrity sha512-zeqeQkppPL6BKLIJdfR5IUoZRrxRudApJapnFzWCkkrmefQSqdlBma2fzhmniSJ3TRhxe5xpK3W3/l8aCrHvwQ== -cypress-example-kitchensink@1.17.1: - version "1.17.1" - resolved "https://registry.yarnpkg.com/cypress-example-kitchensink/-/cypress-example-kitchensink-1.17.1.tgz#a14d5c64de5dd1083a6ec1a61430d76efb00e18d" - integrity sha512-iMIiuDpcLMPiZcUtfdbMtMoX5uvGHPH+M/XeD/jmnZCfc+aX+a+g2RNEPQzuM4MD4GGKMTnui/RQ7I++Ca+VOg== +cypress-example-kitchensink@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cypress-example-kitchensink/-/cypress-example-kitchensink-2.0.0.tgz#16b0e5c226eca08d937d0057293c5d168d0498fd" + integrity sha512-Uoqz+E5UNdmraQ/s+BtKOQ/diRacfB4vGl6mXM37nHKDJFCRo6PGV9Ooy68m5IGZQs97aclL9ALPb2GpTUcTmg== dependencies: npm-run-all "^4.1.2" - serve "14.2.0" + serve "14.2.1" cypress-expect@^2.5.3: version "2.5.3" @@ -26281,10 +26281,10 @@ serve-static@1.14.2: parseurl "~1.3.3" send "0.17.2" -serve@14.2.0: - version "14.2.0" - resolved "https://registry.yarnpkg.com/serve/-/serve-14.2.0.tgz#3d768e88fa13ad8644f2393599189707176e66b8" - integrity sha512-+HOw/XK1bW8tw5iBilBz/mJLWRzM8XM6MPxL4J/dKzdxq1vfdEWSwhaR7/yS8EJp5wzvP92p1qirysJvnEtjXg== +serve@14.2.1: + version "14.2.1" + resolved "https://registry.yarnpkg.com/serve/-/serve-14.2.1.tgz#3f078d292ed5e7b2c5a64f957af2765b0459798b" + integrity sha512-48er5fzHh7GCShLnNyPBRPEjs2I6QBozeGr02gaacROiyS/8ARADlj595j39iZXAqBbJHH/ivJJyPRWY9sQWZA== dependencies: "@zeit/schemas" "2.29.0" ajv "8.11.0" From facf87db05fd51b4669e44640b421d478181a706 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 13 Oct 2023 13:48:50 -0600 Subject: [PATCH 06/47] fix(deps): update dependency zod to v3.22.3 [security] (#27966) --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index be736f419ee4..a20780e072f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -31250,9 +31250,9 @@ yocto-queue@^1.0.0: integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== zod@^3.20.3: - version "3.20.3" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.20.3.tgz#56b2ebb87d4566e7cd38f0f6cda7fa591fcec948" - integrity sha512-+MLeeUcLTlnzVo5xDn9+LVN9oX4esvgZ7qfZczBN+YVUvZBafIrPPVyG2WdjMWU2Qkb2ZAh2M8lpqf1wIoGqJQ== + version "3.22.3" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.3.tgz#2fbc96118b174290d94e8896371c95629e87a060" + integrity sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug== zone.js@0.9.0: version "0.9.0" From 5a7eee573ec196dc0fcd98768ab021828a3f1307 Mon Sep 17 00:00:00 2001 From: Sam Tsai Date: Fri, 13 Oct 2023 16:43:53 -0400 Subject: [PATCH 07/47] fix(grep): fix options sent to fast glob package - issue 27216 (#27231) * Declare function so we can import * Fix ignore pattern to match api * Fix lint * Only force array if not already an array Turn grep filtering on for own test * Add a command to test grep tag @smoke * adding tests --------- Co-authored-by: Cacie Prins Co-authored-by: Jordan Co-authored-by: Adam Stone-Lord Co-authored-by: Matthew Schile --- npm/grep/cypress.config.js | 9 ++++++++- npm/grep/cypress/e2e/unit.js | 33 +++++++++++++++++++++++++++++++++ npm/grep/src/plugin.js | 2 +- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/npm/grep/cypress.config.js b/npm/grep/cypress.config.js index 31107ca7e869..6502677a6d5e 100644 --- a/npm/grep/cypress.config.js +++ b/npm/grep/cypress.config.js @@ -1,10 +1,17 @@ const { defineConfig } = require('cypress') +const cypressGrepPlugin = require('./src/plugin') module.exports = defineConfig({ e2e: { defaultCommandTimeout: 1000, setupNodeEvents (on, config) { - require('./src/plugin')(config) + cypressGrepPlugin(config) + + on('task', { + grep (config) { + return cypressGrepPlugin(config) + }, + }) return config }, diff --git a/npm/grep/cypress/e2e/unit.js b/npm/grep/cypress/e2e/unit.js index 0ade87a29418..da61404ccb22 100644 --- a/npm/grep/cypress/e2e/unit.js +++ b/npm/grep/cypress/e2e/unit.js @@ -437,3 +437,36 @@ describe('utils', () => { }) }) }) + +describe('plugin', () => { + context('excludeSpecPattern', () => { + it('supports an array value', () => { + cy.task('grep', { + excludeSpecPattern: ['**/test2.spec.js', '**/test3.spec.js'], + specPattern: '**/*.spec.js', + env: { + grepTags: 'smoke', + grepFilterSpecs: true, + }, + }).then((config) => { + expect(config.specPattern.length).to.equal(1) + expect(config.specPattern[0]).to.contain('test1.spec.js') + }) + }) + + it('supports a string value', () => { + cy.task('grep', { + excludeSpecPattern: '**/test2.spec.js', + specPattern: '**/*.spec.js', + env: { + grepTags: 'smoke', + grepFilterSpecs: true, + }, + }).then((config) => { + expect(config.specPattern.length).to.equal(2) + expect(config.specPattern[0]).to.contain('test1.spec.js') + expect(config.specPattern[1]).to.contain('test3.spec.js') + }) + }) + }) +}) diff --git a/npm/grep/src/plugin.js b/npm/grep/src/plugin.js index 39923691b919..483b3aa85f18 100644 --- a/npm/grep/src/plugin.js +++ b/npm/grep/src/plugin.js @@ -69,7 +69,7 @@ function cypressGrepPlugin (config) { debug('integrationFolder', integrationFolder) const specFiles = globby.sync(specPattern, { cwd: integrationFolder, - ignore: excludeSpecPattern, + ignore: Array.isArray(excludeSpecPattern) ? excludeSpecPattern : [excludeSpecPattern], absolute: true, }) From bffc2f3f1745ec8d17da03f885ffb13857e1ea52 Mon Sep 17 00:00:00 2001 From: Adam Stone-Lord Date: Mon, 16 Oct 2023 13:57:16 -0400 Subject: [PATCH 08/47] chore: use env to override branch instead of cli arg (#28057) --- cli/scripts/build.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/cli/scripts/build.js b/cli/scripts/build.js index 155a8a47a35e..a957f3e701b3 100644 --- a/cli/scripts/build.js +++ b/cli/scripts/build.js @@ -1,8 +1,6 @@ const _ = require('lodash') const path = require('path') const shell = require('shelljs') -const minimist = require('minimist') - const fs = require('../lib/fs') // grab the current version and a few other properties @@ -72,9 +70,7 @@ function makeUserPackageFile (branchName) { module.exports = makeUserPackageFile if (!module.parent) { - const args = minimist(process.argv) - - makeUserPackageFile(args.branch) + makeUserPackageFile(process.env.BRANCH) .catch((err) => { /* eslint-disable no-console */ console.error('Could not write user package file') From 861474f904bb8cfb9759ddc9513d40180a9c419f Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 16 Oct 2023 14:30:39 -0400 Subject: [PATCH 09/47] chore: release @cypress/grep-v4.0.1 [skip ci] --- npm/grep/CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/npm/grep/CHANGELOG.md b/npm/grep/CHANGELOG.md index bb91332f8a12..07b10dbad848 100644 --- a/npm/grep/CHANGELOG.md +++ b/npm/grep/CHANGELOG.md @@ -1,3 +1,10 @@ +# [@cypress/grep-v4.0.1](https://github.com/cypress-io/cypress/compare/@cypress/grep-v4.0.0...@cypress/grep-v4.0.1) (2023-10-16) + + +### Bug Fixes + +* **grep:** fix options sent to fast glob package - issue 27216 ([#27231](https://github.com/cypress-io/cypress/issues/27231)) ([5a7eee5](https://github.com/cypress-io/cypress/commit/5a7eee573ec196dc0fcd98768ab021828a3f1307)) + # [@cypress/grep-v4.0.0](https://github.com/cypress-io/cypress/compare/@cypress/grep-v3.1.5...@cypress/grep-v4.0.0) (2023-08-29) From c8c5b51d82c1a4fa539c00be4d65fd2b82d77a5e Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Mon, 16 Oct 2023 14:16:48 -0500 Subject: [PATCH 10/47] dependency: packages/data-context/package.json to reduce vulnerabilities (#28063) Co-authored-by: snyk-bot Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com> --- cli/CHANGELOG.md | 8 + .../component-testing/babel/babelTransform.ts | 4 +- packages/data-context/package.json | 2 +- .../src/actions/CodegenActions.ts | 32 +- .../test/unit/actions/CodegenActions.spec.ts | 35 ++- packages/server/package.json | 4 +- packages/web-config/package.json | 2 +- system-tests/package.json | 2 +- .../cache/darwin/snapshot-meta.json | 214 +++++++------ .../cache/linux/snapshot-meta.json | 214 +++++++------ .../cache/win32/snapshot-meta.json | 214 +++++++------ yarn.lock | 293 +++++++++--------- 12 files changed, 551 insertions(+), 473 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index a8aaa68ab025..2e54397e4fef 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,4 +1,12 @@ +## 13.3.2 + +_Released 10/25/2023 (PENDING)_ + +**Dependency Updates:** + +- Upgraded [`@babel/core`](https://www.npmjs.com/package/@babel/core) from `7.22.9` to `7.23.2` to address the [SNYK-JS-SEMVER-3247795](https://snyk.io/vuln/SNYK-JS-SEMVER-3247795) security vulnerability. Upgraded [`@babel/traverse`](https://www.npmjs.com/package/@babel/traverse) from `7.22.8` to `7.23.2` to address the [SNYK-JS-BABELTRAVERSE-5962462](https://snyk.io/vuln/SNYK-JS-BABELTRAVERSE-5962462) security vulnerability. Upgraded [`react-docgen`](https://www.npmjs.com/package/react-docgen) from `6.0.0-alpha.3` to `6.0.4` to address the [SNYK-JS-BABELTRAVERSE-5962462](https://snyk.io/vuln/SNYK-JS-BABELTRAVERSE-5962462) security vulnerability. Addressed in [#28063](https://github.com/cypress-io/cypress/pull/28063). + ## 13.3.1 _Released 10/11/2023_ diff --git a/npm/create-cypress-tests/src/component-testing/babel/babelTransform.ts b/npm/create-cypress-tests/src/component-testing/babel/babelTransform.ts index b7089d3cc158..0c06f49ca80c 100644 --- a/npm/create-cypress-tests/src/component-testing/babel/babelTransform.ts +++ b/npm/create-cypress-tests/src/component-testing/babel/babelTransform.ts @@ -98,10 +98,10 @@ export function createTransformPluginsFileBabelPlugin (ast: PluginsConfigAst): b babelTypes.blockStatement(statementToInject as babelTypes.Statement[] | babelTypes.Statement[]), ) - path.get('body').pushContainer('body' as never, ifComponentMode as babel.Node) + path.get('body').pushContainer('body' as never, ifComponentMode as never) if (ast.requiresReturnConfig) { - path.get('body').pushContainer('body' as never, returnConfigAst) + path.get('body').pushContainer('body' as never, returnConfigAst as never) } } }, diff --git a/packages/data-context/package.json b/packages/data-context/package.json index ada3dc204eb4..cfbcf55c2489 100644 --- a/packages/data-context/package.json +++ b/packages/data-context/package.json @@ -49,7 +49,7 @@ "prettier": "2.5.1", "randexp": "0.5.3", "randomstring": "1.1.5", - "react-docgen": "6.0.0-alpha.3", + "react-docgen": "6.0.4", "semver": "7.3.2", "simple-git": "3.16.0", "stringify-object": "^3.0.0", diff --git a/packages/data-context/src/actions/CodegenActions.ts b/packages/data-context/src/actions/CodegenActions.ts index a906ab7a5995..d777923df7aa 100644 --- a/packages/data-context/src/actions/CodegenActions.ts +++ b/packages/data-context/src/actions/CodegenActions.ts @@ -5,7 +5,6 @@ import type { DataContext } from '..' import { SpecOptions, codeGenerator } from '../codegen' import templates from '../codegen/templates' import type { CodeGenType } from '../gen/graphcache-config.gen' -import { parse as parseReactComponent, resolver as reactDocgenResolvers } from 'react-docgen' import { visit } from 'ast-types' export interface ReactComponentDescriptor { @@ -16,12 +15,29 @@ export interface ReactComponentDescriptor { export class CodegenActions { constructor (private ctx: DataContext) {} - async getReactComponentsFromFile (filePath: string): Promise<{components: ReactComponentDescriptor[], errored?: boolean }> { + async getReactComponentsFromFile (filePath: string, reactDocgen?: typeof import('react-docgen')): Promise<{components: ReactComponentDescriptor[], errored?: boolean }> { try { + // this dance to get react-docgen is for now because react-docgen is a module and our typescript settings are set up to transpile to commonjs + // which will require the module, which will fail because it's an es module. This is a temporary workaround. + let actualReactDocgen = reactDocgen + + if (!actualReactDocgen) { + actualReactDocgen = await import('react-docgen') + } + + const { parse: parseReactComponent, builtinResolvers: reactDocgenResolvers } = actualReactDocgen + const src = await this.ctx.fs.readFile(filePath, 'utf8') const exportResolver: ExportResolver = new Map() - let result = parseReactComponent(src, findAllWithLink(exportResolver), undefined, { parserOptions: { plugins: ['typescript', 'jsx'] } }) + let result = parseReactComponent(src, { + resolver: findAllWithLink(exportResolver, reactDocgenResolvers), + babelOptions: { + parserOpts: { + plugins: ['typescript', 'jsx'], + }, + }, + }) // types appear to be incorrect in react-docgen@6.0.0-alpha.3 // TODO: update when 6.0.0 stable is out for fixed types. @@ -166,9 +182,9 @@ export class CodegenActions { type ExportResolver = Map -function findAllWithLink (exportResolver: ExportResolver) { - return (ast: any, parser: any, importer: any) => { - visit(ast, { +function findAllWithLink (exportResolver: ExportResolver, reactDocgenResolvers: typeof import('react-docgen').builtinResolvers) { + return (fileState: any) => { + visit(fileState.ast, { // export const Foo, export { Foo, Bar }, export function FooBar () { ... } visitExportNamedDeclaration: (path) => { const declaration = path.node.declaration as any @@ -228,6 +244,8 @@ function findAllWithLink (exportResolver: ExportResolver) { }, }) - return reactDocgenResolvers.findAllExportedComponentDefinitions(ast, parser, importer) + const exportedDefinitionsResolver = new reactDocgenResolvers.FindExportedDefinitionsResolver() + + return exportedDefinitionsResolver.resolve(fileState) } } diff --git a/packages/data-context/test/unit/actions/CodegenActions.spec.ts b/packages/data-context/test/unit/actions/CodegenActions.spec.ts index b5607ea6fe42..8baddc161722 100644 --- a/packages/data-context/test/unit/actions/CodegenActions.spec.ts +++ b/packages/data-context/test/unit/actions/CodegenActions.spec.ts @@ -8,12 +8,15 @@ import path from 'path' describe('CodegenActions', () => { let ctx: DataContext let actions: CodegenActions + let reactDocgen: typeof import('react-docgen') - beforeEach(() => { + beforeEach(async () => { sinon.restore() ctx = createTestDataContext('open') + reactDocgen = await eval('import("react-docgen")') + actions = new CodegenActions(ctx) }) @@ -21,7 +24,7 @@ describe('CodegenActions', () => { const absolutePathPrefix = path.resolve('./test/unit/actions/project') it('returns React components from file with class component', async () => { - const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-class.jsx`) + const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-class.jsx`, reactDocgen) expect(components).to.have.length(1) expect(components[0].exportName).to.equal('Counter') @@ -29,7 +32,7 @@ describe('CodegenActions', () => { }) it('returns React components from file with functional component', async () => { - const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-functional.jsx`) + const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-functional.jsx`, reactDocgen) expect(components).to.have.length(1) expect(components[0].exportName).to.equal('Counter') @@ -37,7 +40,7 @@ describe('CodegenActions', () => { }) it('returns only exported React components from file with functional components', async () => { - const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-multiple-components.jsx`) + const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-multiple-components.jsx`, reactDocgen) expect(components).to.have.length(2) expect(components[0].exportName).to.equal('CounterContainer') @@ -48,7 +51,7 @@ describe('CodegenActions', () => { }) it('returns React components from a tsx file', async () => { - const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter.tsx`) + const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter.tsx`, reactDocgen) expect(components).to.have.length(1) expect(components[0].exportName).to.equal('Counter') @@ -56,35 +59,35 @@ describe('CodegenActions', () => { }) it('returns React components that are exported by default', async () => { - let reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-default.tsx`)).components + let reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-default.tsx`, reactDocgen)).components expect(reactComponents).to.have.length(1) expect(reactComponents[0].exportName).to.equal('CounterDefault') expect(reactComponents[0].isDefault).to.equal(true) - reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/default-anonymous.jsx`)).components + reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/default-anonymous.jsx`, reactDocgen)).components expect(reactComponents).to.have.length(1) expect(reactComponents[0].exportName).to.equal('Component') expect(reactComponents[0].isDefault).to.equal(true) - reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/default-function.jsx`)).components + reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/default-function.jsx`, reactDocgen)).components expect(reactComponents).to.have.length(1) expect(reactComponents[0].exportName).to.equal('HelloWorld') expect(reactComponents[0].isDefault).to.equal(true) - reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/default-class.jsx`)).components + reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/default-class.jsx`, reactDocgen)).components expect(reactComponents).to.have.length(1) expect(reactComponents[0].exportName).to.equal('HelloWorld') expect(reactComponents[0].isDefault).to.equal(true) - reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/default-specifier.jsx`)).components + reactComponents = await (await actions.getReactComponentsFromFile(`${absolutePathPrefix}/default-specifier.jsx`, reactDocgen)).components expect(reactComponents).to.have.length(1) expect(reactComponents[0].exportName).to.equal('HelloWorld') expect(reactComponents[0].isDefault).to.equal(true) }) it('returns React components defined with arrow functions', async () => { - const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-arrow-function.jsx`) + const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-arrow-function.jsx`, reactDocgen) expect(components).to.have.length(1) expect(components[0].exportName).to.equal('Counter') @@ -92,7 +95,7 @@ describe('CodegenActions', () => { }) it('returns React components from a file with multiple separate export statements', async () => { - const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-separate-exports.jsx`) + const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-separate-exports.jsx`, reactDocgen) expect(components).to.have.length(2) expect(components[0].exportName).to.equal('CounterView') @@ -102,7 +105,7 @@ describe('CodegenActions', () => { }) it('returns React components that are exported and aliased', async () => { - const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/export-alias.jsx`) + const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/export-alias.jsx`, reactDocgen) expect(components).to.have.length(1) expect(components[0].exportName).to.equal('HelloWorld') @@ -111,7 +114,7 @@ describe('CodegenActions', () => { // TODO: "react-docgen" will resolve HOCs but our export detection does not. Can fall back to displayName here it.skip('handles higher-order-components', async () => { - const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-hoc.jsx`) + const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/counter-hoc.jsx`, reactDocgen) expect(components).to.have.length(1) expect(components[0].exportName).to.equal('Counter') @@ -119,7 +122,7 @@ describe('CodegenActions', () => { }) it('correctly parses typescript files', async () => { - const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/LoginForm.tsx`) + const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/LoginForm.tsx`, reactDocgen) expect(components).to.have.length(1) expect(components[0].exportName).to.equal('LoginForm') @@ -127,7 +130,7 @@ describe('CodegenActions', () => { }) it('does not throw while parsing empty file', async () => { - const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/empty.jsx`) + const { components } = await actions.getReactComponentsFromFile(`${absolutePathPrefix}/empty.jsx`, reactDocgen) expect(components).to.have.length(0) }) diff --git a/packages/server/package.json b/packages/server/package.json index 5fbfd408832a..85139411da54 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -23,7 +23,7 @@ "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json, ." }, "dependencies": { - "@babel/parser": "7.22.7", + "@babel/parser": "7.23.0", "@benmalka/foxdriver": "0.4.1", "@cypress/commit-info": "2.2.0", "@cypress/get-windows-proxy": "1.6.2", @@ -134,7 +134,7 @@ "widest-line": "3.1.0" }, "devDependencies": { - "@babel/core": "7.22.9", + "@babel/core": "7.23.2", "@babel/preset-env": "7.22.9", "@cypress/debugging-proxy": "2.0.1", "@cypress/sinon-chai": "2.9.1", diff --git a/packages/web-config/package.json b/packages/web-config/package.json index 21ed504e178d..145ee8dbd32c 100644 --- a/packages/web-config/package.json +++ b/packages/web-config/package.json @@ -2,7 +2,7 @@ "name": "@packages/web-config", "version": "0.0.0-development", "devDependencies": { - "@babel/core": "7.22.9", + "@babel/core": "7.23.2", "@babel/helper-define-map": "7.18.6", "@babel/plugin-proposal-decorators": "7.22.7", "@babel/plugin-transform-class-properties": "7.22.5", diff --git a/system-tests/package.json b/system-tests/package.json index 8a4eadda5ebb..24d0bc0dca20 100644 --- a/system-tests/package.json +++ b/system-tests/package.json @@ -19,7 +19,7 @@ "update:snapshots": "SNAPSHOT_UPDATE=1 npm run test" }, "devDependencies": { - "@babel/core": "7.22.9", + "@babel/core": "7.23.2", "@babel/preset-env": "7.22.9", "@cypress/commit-info": "2.2.0", "@cypress/debugging-proxy": "2.0.1", diff --git a/tooling/v8-snapshot/cache/darwin/snapshot-meta.json b/tooling/v8-snapshot/cache/darwin/snapshot-meta.json index 594521c767cb..ed4732e18936 100644 --- a/tooling/v8-snapshot/cache/darwin/snapshot-meta.json +++ b/tooling/v8-snapshot/cache/darwin/snapshot-meta.json @@ -44,6 +44,7 @@ "./node_modules/prettier/parser-meriyah.js", "./node_modules/prettier/parser-typescript.js", "./node_modules/prettier/third-party.js", + "./node_modules/react-docgen/dist/FileState.js", "./node_modules/send/node_modules/debug/src/node.js", "./node_modules/stream-parser/node_modules/debug/src/node.js", "./node_modules/tcp-port-used/node_modules/debug/src/node.js", @@ -83,6 +84,7 @@ "deferred": [ "./node_modules/@ampproject/remapping/dist/remapping.umd.js", "./node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js", + "./node_modules/@babel/code-frame/lib/index.js", "./node_modules/@babel/core/lib/config/config-chain.js", "./node_modules/@babel/core/lib/config/config-descriptors.js", "./node_modules/@babel/core/lib/config/files/configuration.js", @@ -104,6 +106,7 @@ "./node_modules/@babel/core/lib/transformation/file/file.js", "./node_modules/@babel/core/lib/transformation/normalize-file.js", "./node_modules/@babel/core/lib/vendor/import-meta-resolve.js", + "./node_modules/@babel/core/node_modules/convert-source-map/index.js", "./node_modules/@babel/core/node_modules/semver/semver.js", "./node_modules/@babel/generator/lib/node/index.js", "./node_modules/@babel/generator/lib/node/whitespace.js", @@ -116,9 +119,11 @@ "./node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/semver.js", "./node_modules/@babel/helper-module-transforms/lib/dynamic-import.js", "./node_modules/@babel/helper-module-transforms/lib/index.js", + "./node_modules/@babel/helper-module-transforms/lib/lazy-modules.js", "./node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js", "./node_modules/@babel/helper-module-transforms/lib/rewrite-this.js", "./node_modules/@babel/helper-replace-supers/lib/index.js", + "./node_modules/@babel/highlight/lib/index.js", "./node_modules/@babel/plugin-transform-modules-commonjs/lib/dynamic-import.js", "./node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js", "./node_modules/@babel/plugin-transform-typescript/lib/const-enum.js", @@ -139,6 +144,7 @@ "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js", "./node_modules/@babel/types/lib/builders/generated/index.js", "./node_modules/@babel/types/lib/builders/generated/uppercase.js", + "./node_modules/@babel/types/lib/builders/productions.js", "./node_modules/@babel/types/lib/builders/react/buildChildren.js", "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js", "./node_modules/@babel/types/lib/builders/validateNode.js", @@ -245,7 +251,6 @@ "./node_modules/compression/node_modules/debug/src/index.js", "./node_modules/compression/node_modules/safe-buffer/index.js", "./node_modules/concat-stream/index.js", - "./node_modules/convert-source-map/node_modules/safe-buffer/index.js", "./node_modules/cp-file/cp-file-error.js", "./node_modules/cp-file/fs.js", "./node_modules/cp-file/node_modules/semver/semver.js", @@ -304,7 +309,6 @@ "./node_modules/fs-extra/lib/json/jsonfile.js", "./node_modules/fs-extra/lib/path-exists/index.js", "./node_modules/fsevents/fsevents.js", - "./node_modules/get-stream/buffer-stream.js", "./node_modules/getenv/index.js", "./node_modules/gifwrap/src/gifcodec.js", "./node_modules/gifwrap/src/gifutil.js", @@ -482,11 +486,19 @@ "./node_modules/pseudomap/map.js", "./node_modules/pumpify/index.js", "./node_modules/queue/index.js", - "./node_modules/react-docgen/dist/babelParser.js", - "./node_modules/react-docgen/dist/importer/index.js", - "./node_modules/react-docgen/dist/importer/makeFsImporter.js", + "./node_modules/react-docgen/dist/config.js", + "./node_modules/react-docgen/dist/importer/fsImporter.js", "./node_modules/react-docgen/dist/main.js", - "./node_modules/react-docgen/dist/parse.js", + "./node_modules/react-docgen/dist/utils/expressionTo.js", + "./node_modules/react-docgen/dist/utils/getMemberExpressionValuePath.js", + "./node_modules/react-docgen/dist/utils/getMemberValuePath.js", + "./node_modules/react-docgen/dist/utils/getPropertyName.js", + "./node_modules/react-docgen/dist/utils/getPropertyValuePath.js", + "./node_modules/react-docgen/dist/utils/isReactBuiltinCall.js", + "./node_modules/react-docgen/dist/utils/isReactForwardRefCall.js", + "./node_modules/react-docgen/dist/utils/resolveFunctionDefinitionToReturnValue.js", + "./node_modules/react-docgen/dist/utils/resolveToModule.js", + "./node_modules/react-docgen/dist/utils/ts-types/index.js", "./node_modules/readable-stream/lib/_stream_duplex.js", "./node_modules/readable-stream/lib/_stream_passthrough.js", "./node_modules/readable-stream/lib/_stream_readable.js", @@ -513,6 +525,7 @@ "./node_modules/resolve/lib/homedir.js", "./node_modules/resolve/lib/sync.js", "./node_modules/run-applescript/node_modules/execa/lib/errname.js", + "./node_modules/run-applescript/node_modules/get-stream/buffer-stream.js", "./node_modules/run-applescript/node_modules/semver/semver.js", "./node_modules/safe-buffer/index.js", "./node_modules/safer-buffer/safer.js", @@ -601,12 +614,14 @@ "./packages/config/index.js", "./packages/config/src/options.ts", "./packages/data-context/index.js", + "./packages/data-context/node_modules/@babel/code-frame/lib/index.js", "./packages/data-context/node_modules/@babel/generator/lib/node/index.js", "./packages/data-context/node_modules/@babel/generator/lib/node/whitespace.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/index.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/uppercase.js", + "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/productions.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/react/buildChildren.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/validateNode.js", @@ -843,13 +858,11 @@ "./tooling/v8-snapshot/dist/setup/v8-snapshot-entry-cy-in-cy.js" ], "healthy": [ - "./node_modules/@babel/code-frame/lib/index.js", "./node_modules/@babel/compat-data/data/native-modules.json", "./node_modules/@babel/compat-data/data/plugins.json", "./node_modules/@babel/compat-data/native-modules.js", "./node_modules/@babel/compat-data/plugins.js", "./node_modules/@babel/core/lib/config/caching.js", - "./node_modules/@babel/core/lib/config/files/import-meta-resolve.js", "./node_modules/@babel/core/lib/config/files/import.cjs", "./node_modules/@babel/core/lib/config/files/package.js", "./node_modules/@babel/core/lib/config/files/utils.js", @@ -931,7 +944,6 @@ "./node_modules/@babel/helpers/lib/helpers-generated.js", "./node_modules/@babel/helpers/lib/helpers.js", "./node_modules/@babel/helpers/lib/index.js", - "./node_modules/@babel/highlight/lib/index.js", "./node_modules/@babel/parser/lib/index.js", "./node_modules/@babel/plugin-syntax-jsx/lib/index.js", "./node_modules/@babel/plugin-syntax-typescript/lib/index.js", @@ -1484,15 +1496,11 @@ "./node_modules/asn1/lib/index.js", "./node_modules/ast-types/def/babel-core.js", "./node_modules/ast-types/def/babel.js", - "./node_modules/ast-types/def/core-operators.js", "./node_modules/ast-types/def/core.js", "./node_modules/ast-types/def/es-proposals.js", - "./node_modules/ast-types/def/es2016.js", - "./node_modules/ast-types/def/es2017.js", - "./node_modules/ast-types/def/es2018.js", - "./node_modules/ast-types/def/es2019.js", "./node_modules/ast-types/def/es2020.js", "./node_modules/ast-types/def/es6.js", + "./node_modules/ast-types/def/es7.js", "./node_modules/ast-types/def/esprima.js", "./node_modules/ast-types/def/flow.js", "./node_modules/ast-types/def/jsx.js", @@ -1565,7 +1573,6 @@ "./node_modules/body-parser/node_modules/qs/lib/utils.js", "./node_modules/body-parser/node_modules/raw-body/index.js", "./node_modules/body-parser/node_modules/setprototypeof/index.js", - "./node_modules/brace-expansion/index.js", "./node_modules/braces/index.js", "./node_modules/braces/lib/compile.js", "./node_modules/braces/lib/constants.js", @@ -1698,7 +1705,6 @@ "./node_modules/concat-map/index.js", "./node_modules/content-disposition/index.js", "./node_modules/content-type/index.js", - "./node_modules/convert-source-map/index.js", "./node_modules/cookie-parser/index.js", "./node_modules/cookie-parser/node_modules/cookie/index.js", "./node_modules/cookie-signature/index.js", @@ -1794,14 +1800,6 @@ "./node_modules/escape-string-applescript/index.js", "./node_modules/escape-string-regexp/index.js", "./node_modules/esprima/dist/esprima.js", - "./node_modules/estree-to-babel/lib/comments.js", - "./node_modules/estree-to-babel/lib/estree-to-babel.js", - "./node_modules/estree-to-babel/lib/get-ast.js", - "./node_modules/estree-to-babel/lib/set-class-method.js", - "./node_modules/estree-to-babel/lib/set-class-private-name.js", - "./node_modules/estree-to-babel/lib/set-class-private-property.js", - "./node_modules/estree-to-babel/lib/set-literal.js", - "./node_modules/estree-to-babel/lib/traverse-object-expression.js", "./node_modules/esutils/lib/ast.js", "./node_modules/esutils/lib/keyword.js", "./node_modules/esutils/lib/utils.js", @@ -1997,7 +1995,6 @@ "./node_modules/get-intrinsic/index.js", "./node_modules/get-own-enumerable-property-symbols/lib/index.js", "./node_modules/get-port/index.js", - "./node_modules/get-stream/index.js", "./node_modules/getos/index.js", "./node_modules/getos/os.json", "./node_modules/gifwrap/src/bitmapimage.js", @@ -2208,7 +2205,6 @@ "./node_modules/ipaddr.js/lib/ipaddr.js", "./node_modules/is-binary-path/index.js", "./node_modules/is-buffer/index.js", - "./node_modules/is-ci/index.js", "./node_modules/is-core-module/core.json", "./node_modules/is-core-module/index.js", "./node_modules/is-dotfile/index.js", @@ -2218,6 +2214,7 @@ "./node_modules/is-glob/index.js", "./node_modules/is-html/index.js", "./node_modules/is-path-inside/index.js", + "./node_modules/is-plain-obj/index.js", "./node_modules/is-regexp/index.js", "./node_modules/is-stream/index.js", "./node_modules/is-typedarray/index.js", @@ -2474,6 +2471,7 @@ "./node_modules/mime-types/index.js", "./node_modules/mime/types.json", "./node_modules/min-indent/index.js", + "./node_modules/minimatch/node_modules/brace-expansion/index.js", "./node_modules/minimist/index.js", "./node_modules/mkdirp/index.js", "./node_modules/mocha-7.0.1/lib/browser/progress.js", @@ -2496,6 +2494,7 @@ "./node_modules/mocha-7.0.1/lib/reporters/markdown.js", "./node_modules/mocha-7.0.1/lib/stats-collector.js", "./node_modules/mocha-7.0.1/lib/utils.js", + "./node_modules/mocha-7.0.1/node_modules/brace-expansion/index.js", "./node_modules/mocha-7.0.1/node_modules/debug/node_modules/ms/index.js", "./node_modules/mocha-7.0.1/node_modules/debug/src/common.js", "./node_modules/mocha-7.0.1/node_modules/glob/common.js", @@ -2560,7 +2559,6 @@ "./node_modules/mount-point/index.js", "./node_modules/mount-point/node_modules/@sindresorhus/df/index.js", "./node_modules/move-file/index.js", - "./node_modules/move-file/node_modules/path-exists/index.js", "./node_modules/ms/index.js", "./node_modules/negotiator/index.js", "./node_modules/negotiator/lib/charset.js", @@ -2605,14 +2603,6 @@ "./node_modules/nexus/dist/typegenTypeHelpers.js", "./node_modules/nexus/package.json", "./node_modules/nice-try/src/index.js", - "./node_modules/node-fetch/node_modules/tr46/index.js", - "./node_modules/node-fetch/node_modules/tr46/lib/mappingTable.json", - "./node_modules/node-fetch/node_modules/webidl-conversions/lib/index.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL-impl.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/public-api.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/url-state-machine.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/utils.js", "./node_modules/node-forge/lib/baseN.js", "./node_modules/node-forge/lib/forge.js", "./node_modules/node-forge/lib/md.js", @@ -3090,67 +3080,69 @@ "./node_modules/raw-body/index.js", "./node_modules/raw-body/node_modules/bytes/index.js", "./node_modules/react-docgen/dist/Documentation.js", + "./node_modules/react-docgen/dist/babelParser.js", + "./node_modules/react-docgen/dist/error.js", + "./node_modules/react-docgen/dist/handlers/codeTypeHandler.js", "./node_modules/react-docgen/dist/handlers/componentDocblockHandler.js", "./node_modules/react-docgen/dist/handlers/componentMethodsHandler.js", "./node_modules/react-docgen/dist/handlers/componentMethodsJsDocHandler.js", "./node_modules/react-docgen/dist/handlers/defaultPropsHandler.js", "./node_modules/react-docgen/dist/handlers/displayNameHandler.js", - "./node_modules/react-docgen/dist/handlers/flowTypeHandler.js", "./node_modules/react-docgen/dist/handlers/index.js", - "./node_modules/react-docgen/dist/handlers/propDocBlockHandler.js", + "./node_modules/react-docgen/dist/handlers/propDocblockHandler.js", "./node_modules/react-docgen/dist/handlers/propTypeCompositionHandler.js", "./node_modules/react-docgen/dist/handlers/propTypeHandler.js", - "./node_modules/react-docgen/dist/importer/ignoreImports.js", - "./node_modules/react-docgen/dist/resolver/findAllComponentDefinitions.js", - "./node_modules/react-docgen/dist/resolver/findAllExportedComponentDefinitions.js", - "./node_modules/react-docgen/dist/resolver/findExportedComponentDefinition.js", + "./node_modules/react-docgen/dist/importer/ignoreImporter.js", + "./node_modules/react-docgen/dist/importer/index.js", + "./node_modules/react-docgen/dist/importer/makeFsImporter.js", + "./node_modules/react-docgen/dist/importer/makeIgnoreImporter.js", + "./node_modules/react-docgen/dist/parse.js", + "./node_modules/react-docgen/dist/resolver/ChainResolver.js", + "./node_modules/react-docgen/dist/resolver/FindAllDefinitionsResolver.js", + "./node_modules/react-docgen/dist/resolver/FindAnnotatedDefinitionsResolver.js", + "./node_modules/react-docgen/dist/resolver/FindExportedDefinitionsResolver.js", "./node_modules/react-docgen/dist/resolver/index.js", + "./node_modules/react-docgen/dist/resolver/utils/runResolver.js", "./node_modules/react-docgen/dist/utils/docblock.js", - "./node_modules/react-docgen/dist/utils/expressionTo.js", + "./node_modules/react-docgen/dist/utils/findComponentDefinition.js", + "./node_modules/react-docgen/dist/utils/findFunctionReturn.js", "./node_modules/react-docgen/dist/utils/flowUtilityTypes.js", "./node_modules/react-docgen/dist/utils/getClassMemberValuePath.js", "./node_modules/react-docgen/dist/utils/getFlowType.js", - "./node_modules/react-docgen/dist/utils/getFlowTypeFromReactComponent.js", "./node_modules/react-docgen/dist/utils/getMemberExpressionRoot.js", - "./node_modules/react-docgen/dist/utils/getMemberExpressionValuePath.js", - "./node_modules/react-docgen/dist/utils/getMemberValuePath.js", "./node_modules/react-docgen/dist/utils/getMembers.js", "./node_modules/react-docgen/dist/utils/getMethodDocumentation.js", "./node_modules/react-docgen/dist/utils/getNameOrValue.js", "./node_modules/react-docgen/dist/utils/getParameterName.js", "./node_modules/react-docgen/dist/utils/getPropType.js", - "./node_modules/react-docgen/dist/utils/getPropertyName.js", - "./node_modules/react-docgen/dist/utils/getPropertyValuePath.js", "./node_modules/react-docgen/dist/utils/getTSType.js", "./node_modules/react-docgen/dist/utils/getTypeAnnotation.js", + "./node_modules/react-docgen/dist/utils/getTypeFromReactComponent.js", + "./node_modules/react-docgen/dist/utils/getTypeIdentifier.js", "./node_modules/react-docgen/dist/utils/getTypeParameters.js", "./node_modules/react-docgen/dist/utils/index.js", "./node_modules/react-docgen/dist/utils/isDestructuringAssignment.js", "./node_modules/react-docgen/dist/utils/isExportsOrModuleAssignment.js", - "./node_modules/react-docgen/dist/utils/isReactBuiltinCall.js", "./node_modules/react-docgen/dist/utils/isReactChildrenElementCall.js", "./node_modules/react-docgen/dist/utils/isReactCloneElementCall.js", "./node_modules/react-docgen/dist/utils/isReactComponentClass.js", "./node_modules/react-docgen/dist/utils/isReactComponentMethod.js", "./node_modules/react-docgen/dist/utils/isReactCreateClassCall.js", "./node_modules/react-docgen/dist/utils/isReactCreateElementCall.js", - "./node_modules/react-docgen/dist/utils/isReactForwardRefCall.js", "./node_modules/react-docgen/dist/utils/isReactModuleName.js", "./node_modules/react-docgen/dist/utils/isRequiredPropType.js", "./node_modules/react-docgen/dist/utils/isStatelessComponent.js", "./node_modules/react-docgen/dist/utils/isUnreachableFlowType.js", - "./node_modules/react-docgen/dist/utils/match.js", "./node_modules/react-docgen/dist/utils/normalizeClassDefinition.js", "./node_modules/react-docgen/dist/utils/parseJsDoc.js", "./node_modules/react-docgen/dist/utils/postProcessDocumentation.js", "./node_modules/react-docgen/dist/utils/printValue.js", "./node_modules/react-docgen/dist/utils/resolveExportDeclaration.js", - "./node_modules/react-docgen/dist/utils/resolveFunctionDefinitionToReturnValue.js", "./node_modules/react-docgen/dist/utils/resolveGenericTypeAnnotation.js", "./node_modules/react-docgen/dist/utils/resolveHOC.js", "./node_modules/react-docgen/dist/utils/resolveObjectKeysToArray.js", + "./node_modules/react-docgen/dist/utils/resolveObjectPatternPropertyToValue.js", "./node_modules/react-docgen/dist/utils/resolveObjectValuesToArray.js", - "./node_modules/react-docgen/dist/utils/resolveToModule.js", "./node_modules/react-docgen/dist/utils/resolveToValue.js", "./node_modules/react-docgen/dist/utils/setPropDescription.js", "./node_modules/react-docgen/dist/utils/traverse.js", @@ -3158,7 +3150,34 @@ "./node_modules/react-docgen/node_modules/doctrine/lib/typed.js", "./node_modules/react-docgen/node_modules/doctrine/lib/utility.js", "./node_modules/react-docgen/node_modules/doctrine/package.json", + "./node_modules/react-docgen/node_modules/strip-indent/index.js", "./node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/recast/node_modules/ast-types/def/babel-core.js", + "./node_modules/recast/node_modules/ast-types/def/babel.js", + "./node_modules/recast/node_modules/ast-types/def/core-operators.js", + "./node_modules/recast/node_modules/ast-types/def/core.js", + "./node_modules/recast/node_modules/ast-types/def/es-proposals.js", + "./node_modules/recast/node_modules/ast-types/def/es2016.js", + "./node_modules/recast/node_modules/ast-types/def/es2017.js", + "./node_modules/recast/node_modules/ast-types/def/es2018.js", + "./node_modules/recast/node_modules/ast-types/def/es2019.js", + "./node_modules/recast/node_modules/ast-types/def/es2020.js", + "./node_modules/recast/node_modules/ast-types/def/es6.js", + "./node_modules/recast/node_modules/ast-types/def/esprima.js", + "./node_modules/recast/node_modules/ast-types/def/flow.js", + "./node_modules/recast/node_modules/ast-types/def/jsx.js", + "./node_modules/recast/node_modules/ast-types/def/type-annotations.js", + "./node_modules/recast/node_modules/ast-types/def/typescript.js", + "./node_modules/recast/node_modules/ast-types/fork.js", + "./node_modules/recast/node_modules/ast-types/gen/namedTypes.js", + "./node_modules/recast/node_modules/ast-types/lib/equiv.js", + "./node_modules/recast/node_modules/ast-types/lib/node-path.js", + "./node_modules/recast/node_modules/ast-types/lib/path-visitor.js", + "./node_modules/recast/node_modules/ast-types/lib/path.js", + "./node_modules/recast/node_modules/ast-types/lib/scope.js", + "./node_modules/recast/node_modules/ast-types/lib/shared.js", + "./node_modules/recast/node_modules/ast-types/lib/types.js", + "./node_modules/recast/node_modules/ast-types/main.js", "./node_modules/recast/parsers/_babel_options.js", "./node_modules/recast/parsers/babel.js", "./node_modules/recast/parsers/esprima.js", @@ -3197,6 +3216,7 @@ "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/resolveCommand.js", "./node_modules/run-applescript/node_modules/execa/index.js", "./node_modules/run-applescript/node_modules/execa/lib/stdio.js", + "./node_modules/run-applescript/node_modules/get-stream/index.js", "./node_modules/run-applescript/node_modules/path-key/index.js", "./node_modules/run-parallel/index.js", "./node_modules/sanitize-filename/index.js", @@ -3273,7 +3293,6 @@ "./node_modules/simple-swizzle/node_modules/is-arrayish/index.js", "./node_modules/slash/index.js", "./node_modules/sort-keys-length/index.js", - "./node_modules/sort-keys-length/node_modules/is-plain-obj/index.js", "./node_modules/sort-keys-length/node_modules/sort-keys/index.js", "./node_modules/source-map/lib/array-set.js", "./node_modules/source-map/lib/base64-vlq.js", @@ -3303,7 +3322,6 @@ "./node_modules/strip-ansi/index.js", "./node_modules/strip-eof/index.js", "./node_modules/strip-final-newline/index.js", - "./node_modules/strip-indent/index.js", "./node_modules/supports-color/node_modules/has-flag/index.js", "./node_modules/syntax-error/index.js", "./node_modules/systeminformation/lib/audio.js", @@ -3347,6 +3365,8 @@ "./node_modules/tough-cookie/lib/validators.js", "./node_modules/tough-cookie/lib/version.js", "./node_modules/tough-cookie/node_modules/universalify/index.js", + "./node_modules/tr46/index.js", + "./node_modules/tr46/lib/mappingTable.json", "./node_modules/trash/index.js", "./node_modules/trash/lib/linux.js", "./node_modules/trash/lib/macos.js", @@ -3474,6 +3494,7 @@ "./node_modules/universalify/index.js", "./node_modules/unpipe/index.js", "./node_modules/unused-filename/index.js", + "./node_modules/unused-filename/node_modules/path-exists/index.js", "./node_modules/url-parse/index.js", "./node_modules/utf8-stream/index.js", "./node_modules/utf8-stream/node_modules/isarray/index.js", @@ -3489,6 +3510,12 @@ "./node_modules/value-or-promise/build/main/ValueOrPromise.js", "./node_modules/value-or-promise/build/main/index.js", "./node_modules/vary/index.js", + "./node_modules/webidl-conversions/lib/index.js", + "./node_modules/whatwg-url/lib/URL-impl.js", + "./node_modules/whatwg-url/lib/URL.js", + "./node_modules/whatwg-url/lib/public-api.js", + "./node_modules/whatwg-url/lib/url-state-machine.js", + "./node_modules/whatwg-url/lib/utils.js", "./node_modules/which/which.js", "./node_modules/widest-line/index.js", "./node_modules/win-version-info/index.js", @@ -3561,7 +3588,6 @@ "./packages/config/src/project/utils.ts", "./packages/config/src/utils.ts", "./packages/config/src/validation.ts", - "./packages/data-context/node_modules/@babel/code-frame/lib/index.js", "./packages/data-context/node_modules/@babel/generator/lib/buffer.js", "./packages/data-context/node_modules/@babel/generator/lib/generators/base.js", "./packages/data-context/node_modules/@babel/generator/lib/generators/classes.js", @@ -3631,6 +3657,33 @@ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isCompatTag.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isReactComponent.js", "./packages/data-context/node_modules/@babel/parser/lib/index.js", + "./packages/data-context/node_modules/ast-types/def/babel-core.js", + "./packages/data-context/node_modules/ast-types/def/babel.js", + "./packages/data-context/node_modules/ast-types/def/core-operators.js", + "./packages/data-context/node_modules/ast-types/def/core.js", + "./packages/data-context/node_modules/ast-types/def/es-proposals.js", + "./packages/data-context/node_modules/ast-types/def/es2016.js", + "./packages/data-context/node_modules/ast-types/def/es2017.js", + "./packages/data-context/node_modules/ast-types/def/es2018.js", + "./packages/data-context/node_modules/ast-types/def/es2019.js", + "./packages/data-context/node_modules/ast-types/def/es2020.js", + "./packages/data-context/node_modules/ast-types/def/es6.js", + "./packages/data-context/node_modules/ast-types/def/esprima.js", + "./packages/data-context/node_modules/ast-types/def/flow.js", + "./packages/data-context/node_modules/ast-types/def/jsx.js", + "./packages/data-context/node_modules/ast-types/def/type-annotations.js", + "./packages/data-context/node_modules/ast-types/def/typescript.js", + "./packages/data-context/node_modules/ast-types/fork.js", + "./packages/data-context/node_modules/ast-types/gen/namedTypes.js", + "./packages/data-context/node_modules/ast-types/lib/equiv.js", + "./packages/data-context/node_modules/ast-types/lib/node-path.js", + "./packages/data-context/node_modules/ast-types/lib/path-visitor.js", + "./packages/data-context/node_modules/ast-types/lib/path.js", + "./packages/data-context/node_modules/ast-types/lib/scope.js", + "./packages/data-context/node_modules/ast-types/lib/shared.js", + "./packages/data-context/node_modules/ast-types/lib/types.js", + "./packages/data-context/node_modules/ast-types/main.js", + "./packages/data-context/node_modules/brace-expansion/index.js", "./packages/data-context/node_modules/cross-spawn/index.js", "./packages/data-context/node_modules/cross-spawn/lib/enoent.js", "./packages/data-context/node_modules/cross-spawn/lib/parse.js", @@ -3926,6 +3979,7 @@ "./packages/network/lib/http-utils.ts", "./packages/network/lib/index.ts", "./packages/network/lib/uri.ts", + "./packages/network/node_modules/brace-expansion/index.js", "./packages/proxy/lib/http/error-middleware.ts", "./packages/proxy/lib/http/util/ast-rewriter.ts", "./packages/proxy/lib/http/util/buffers.ts", @@ -3965,28 +4019,6 @@ "./packages/rewriter/lib/js-rules.ts", "./packages/rewriter/lib/js.ts", "./packages/rewriter/lib/util/source-maps.ts", - "./packages/rewriter/node_modules/ast-types/def/babel-core.js", - "./packages/rewriter/node_modules/ast-types/def/babel.js", - "./packages/rewriter/node_modules/ast-types/def/core.js", - "./packages/rewriter/node_modules/ast-types/def/es-proposals.js", - "./packages/rewriter/node_modules/ast-types/def/es2020.js", - "./packages/rewriter/node_modules/ast-types/def/es6.js", - "./packages/rewriter/node_modules/ast-types/def/es7.js", - "./packages/rewriter/node_modules/ast-types/def/esprima.js", - "./packages/rewriter/node_modules/ast-types/def/flow.js", - "./packages/rewriter/node_modules/ast-types/def/jsx.js", - "./packages/rewriter/node_modules/ast-types/def/type-annotations.js", - "./packages/rewriter/node_modules/ast-types/def/typescript.js", - "./packages/rewriter/node_modules/ast-types/fork.js", - "./packages/rewriter/node_modules/ast-types/gen/namedTypes.js", - "./packages/rewriter/node_modules/ast-types/lib/equiv.js", - "./packages/rewriter/node_modules/ast-types/lib/node-path.js", - "./packages/rewriter/node_modules/ast-types/lib/path-visitor.js", - "./packages/rewriter/node_modules/ast-types/lib/path.js", - "./packages/rewriter/node_modules/ast-types/lib/scope.js", - "./packages/rewriter/node_modules/ast-types/lib/shared.js", - "./packages/rewriter/node_modules/ast-types/lib/types.js", - "./packages/rewriter/node_modules/ast-types/main.js", "./packages/rewriter/node_modules/parse5-sax-parser/lib/parser-feedback-simulator.js", "./packages/rewriter/node_modules/parse5/lib/common/doctype.js", "./packages/rewriter/node_modules/parse5/lib/common/error-codes.js", @@ -4005,6 +4037,7 @@ "./packages/scaffold-config/node_modules/find-up/index.js", "./packages/scaffold-config/node_modules/locate-path/index.js", "./packages/scaffold-config/node_modules/p-locate/index.js", + "./packages/scaffold-config/node_modules/path-exists/index.js", "./packages/scaffold-config/src/commandFile.ts", "./packages/scaffold-config/src/component-index-template.ts", "./packages/scaffold-config/src/ct-detect-third-party.ts", @@ -4086,6 +4119,7 @@ "./packages/server/lib/util/find_process.js", "./packages/server/lib/util/fs.ts", "./packages/server/lib/util/get-windows-proxy.js", + "./packages/server/lib/util/graceful_crash_handling.ts", "./packages/server/lib/util/headers.js", "./packages/server/lib/util/human_time.js", "./packages/server/lib/util/net_profiler.js", @@ -4145,28 +4179,7 @@ "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/legacy-streams.js", "./packages/server/node_modules/@benmalka/foxdriver/package.json", "./packages/server/node_modules/ansi-regex/index.js", - "./packages/server/node_modules/ast-types/def/babel-core.js", - "./packages/server/node_modules/ast-types/def/babel.js", - "./packages/server/node_modules/ast-types/def/core.js", - "./packages/server/node_modules/ast-types/def/es-proposals.js", - "./packages/server/node_modules/ast-types/def/es2020.js", - "./packages/server/node_modules/ast-types/def/es6.js", - "./packages/server/node_modules/ast-types/def/es7.js", - "./packages/server/node_modules/ast-types/def/esprima.js", - "./packages/server/node_modules/ast-types/def/flow.js", - "./packages/server/node_modules/ast-types/def/jsx.js", - "./packages/server/node_modules/ast-types/def/type-annotations.js", - "./packages/server/node_modules/ast-types/def/typescript.js", - "./packages/server/node_modules/ast-types/fork.js", - "./packages/server/node_modules/ast-types/gen/namedTypes.js", - "./packages/server/node_modules/ast-types/lib/equiv.js", - "./packages/server/node_modules/ast-types/lib/node-path.js", - "./packages/server/node_modules/ast-types/lib/path-visitor.js", - "./packages/server/node_modules/ast-types/lib/path.js", - "./packages/server/node_modules/ast-types/lib/scope.js", - "./packages/server/node_modules/ast-types/lib/shared.js", - "./packages/server/node_modules/ast-types/lib/types.js", - "./packages/server/node_modules/ast-types/main.js", + "./packages/server/node_modules/brace-expansion/index.js", "./packages/server/node_modules/cli-table3/index.js", "./packages/server/node_modules/cli-table3/src/cell.js", "./packages/server/node_modules/cli-table3/src/layout-manager.js", @@ -4292,6 +4305,7 @@ "./packages/types/src/modeOptions.ts", "./packages/types/src/preferences.ts", "./packages/types/src/protocol.ts", + "./packages/types/src/proxy.ts", "./packages/types/src/reporter.ts", "./packages/types/src/server.ts", "./packages/types/src/spec.ts", @@ -4301,5 +4315,5 @@ "./tooling/v8-snapshot/cache/darwin/snapshot-entry.js" ], "deferredHashFile": "yarn.lock", - "deferredHash": "20a0e4850189a69601ce25506a99e422cb79debe43a3bea1faf7d3a7f1a64b38" + "deferredHash": "76a16852d60376704f90a2e7377740b9015deb551aadaba74545f7268f8b7107" } \ No newline at end of file diff --git a/tooling/v8-snapshot/cache/linux/snapshot-meta.json b/tooling/v8-snapshot/cache/linux/snapshot-meta.json index 3e048abce908..37b4b2ce1d1c 100644 --- a/tooling/v8-snapshot/cache/linux/snapshot-meta.json +++ b/tooling/v8-snapshot/cache/linux/snapshot-meta.json @@ -44,6 +44,7 @@ "./node_modules/prettier/parser-meriyah.js", "./node_modules/prettier/parser-typescript.js", "./node_modules/prettier/third-party.js", + "./node_modules/react-docgen/dist/FileState.js", "./node_modules/send/node_modules/debug/src/node.js", "./node_modules/stream-parser/node_modules/debug/src/node.js", "./node_modules/tcp-port-used/node_modules/debug/src/node.js", @@ -83,6 +84,7 @@ "deferred": [ "./node_modules/@ampproject/remapping/dist/remapping.umd.js", "./node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js", + "./node_modules/@babel/code-frame/lib/index.js", "./node_modules/@babel/core/lib/config/config-chain.js", "./node_modules/@babel/core/lib/config/config-descriptors.js", "./node_modules/@babel/core/lib/config/files/configuration.js", @@ -104,6 +106,7 @@ "./node_modules/@babel/core/lib/transformation/file/file.js", "./node_modules/@babel/core/lib/transformation/normalize-file.js", "./node_modules/@babel/core/lib/vendor/import-meta-resolve.js", + "./node_modules/@babel/core/node_modules/convert-source-map/index.js", "./node_modules/@babel/core/node_modules/semver/semver.js", "./node_modules/@babel/generator/lib/node/index.js", "./node_modules/@babel/generator/lib/node/whitespace.js", @@ -116,9 +119,11 @@ "./node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/semver.js", "./node_modules/@babel/helper-module-transforms/lib/dynamic-import.js", "./node_modules/@babel/helper-module-transforms/lib/index.js", + "./node_modules/@babel/helper-module-transforms/lib/lazy-modules.js", "./node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js", "./node_modules/@babel/helper-module-transforms/lib/rewrite-this.js", "./node_modules/@babel/helper-replace-supers/lib/index.js", + "./node_modules/@babel/highlight/lib/index.js", "./node_modules/@babel/plugin-transform-modules-commonjs/lib/dynamic-import.js", "./node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js", "./node_modules/@babel/plugin-transform-typescript/lib/const-enum.js", @@ -139,6 +144,7 @@ "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js", "./node_modules/@babel/types/lib/builders/generated/index.js", "./node_modules/@babel/types/lib/builders/generated/uppercase.js", + "./node_modules/@babel/types/lib/builders/productions.js", "./node_modules/@babel/types/lib/builders/react/buildChildren.js", "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js", "./node_modules/@babel/types/lib/builders/validateNode.js", @@ -245,7 +251,6 @@ "./node_modules/compression/node_modules/debug/src/index.js", "./node_modules/compression/node_modules/safe-buffer/index.js", "./node_modules/concat-stream/index.js", - "./node_modules/convert-source-map/node_modules/safe-buffer/index.js", "./node_modules/cp-file/cp-file-error.js", "./node_modules/cp-file/fs.js", "./node_modules/cp-file/node_modules/semver/semver.js", @@ -303,7 +308,6 @@ "./node_modules/fs-extra/lib/json/index.js", "./node_modules/fs-extra/lib/json/jsonfile.js", "./node_modules/fs-extra/lib/path-exists/index.js", - "./node_modules/get-stream/buffer-stream.js", "./node_modules/getenv/index.js", "./node_modules/gifwrap/src/gifcodec.js", "./node_modules/gifwrap/src/gifutil.js", @@ -481,11 +485,19 @@ "./node_modules/pseudomap/map.js", "./node_modules/pumpify/index.js", "./node_modules/queue/index.js", - "./node_modules/react-docgen/dist/babelParser.js", - "./node_modules/react-docgen/dist/importer/index.js", - "./node_modules/react-docgen/dist/importer/makeFsImporter.js", + "./node_modules/react-docgen/dist/config.js", + "./node_modules/react-docgen/dist/importer/fsImporter.js", "./node_modules/react-docgen/dist/main.js", - "./node_modules/react-docgen/dist/parse.js", + "./node_modules/react-docgen/dist/utils/expressionTo.js", + "./node_modules/react-docgen/dist/utils/getMemberExpressionValuePath.js", + "./node_modules/react-docgen/dist/utils/getMemberValuePath.js", + "./node_modules/react-docgen/dist/utils/getPropertyName.js", + "./node_modules/react-docgen/dist/utils/getPropertyValuePath.js", + "./node_modules/react-docgen/dist/utils/isReactBuiltinCall.js", + "./node_modules/react-docgen/dist/utils/isReactForwardRefCall.js", + "./node_modules/react-docgen/dist/utils/resolveFunctionDefinitionToReturnValue.js", + "./node_modules/react-docgen/dist/utils/resolveToModule.js", + "./node_modules/react-docgen/dist/utils/ts-types/index.js", "./node_modules/readable-stream/lib/_stream_duplex.js", "./node_modules/readable-stream/lib/_stream_passthrough.js", "./node_modules/readable-stream/lib/_stream_readable.js", @@ -512,6 +524,7 @@ "./node_modules/resolve/lib/homedir.js", "./node_modules/resolve/lib/sync.js", "./node_modules/run-applescript/node_modules/execa/lib/errname.js", + "./node_modules/run-applescript/node_modules/get-stream/buffer-stream.js", "./node_modules/run-applescript/node_modules/semver/semver.js", "./node_modules/safe-buffer/index.js", "./node_modules/safer-buffer/safer.js", @@ -600,12 +613,14 @@ "./packages/config/index.js", "./packages/config/src/options.ts", "./packages/data-context/index.js", + "./packages/data-context/node_modules/@babel/code-frame/lib/index.js", "./packages/data-context/node_modules/@babel/generator/lib/node/index.js", "./packages/data-context/node_modules/@babel/generator/lib/node/whitespace.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/index.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/uppercase.js", + "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/productions.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/react/buildChildren.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/validateNode.js", @@ -842,13 +857,11 @@ "./tooling/v8-snapshot/dist/setup/v8-snapshot-entry-cy-in-cy.js" ], "healthy": [ - "./node_modules/@babel/code-frame/lib/index.js", "./node_modules/@babel/compat-data/data/native-modules.json", "./node_modules/@babel/compat-data/data/plugins.json", "./node_modules/@babel/compat-data/native-modules.js", "./node_modules/@babel/compat-data/plugins.js", "./node_modules/@babel/core/lib/config/caching.js", - "./node_modules/@babel/core/lib/config/files/import-meta-resolve.js", "./node_modules/@babel/core/lib/config/files/import.cjs", "./node_modules/@babel/core/lib/config/files/package.js", "./node_modules/@babel/core/lib/config/files/utils.js", @@ -930,7 +943,6 @@ "./node_modules/@babel/helpers/lib/helpers-generated.js", "./node_modules/@babel/helpers/lib/helpers.js", "./node_modules/@babel/helpers/lib/index.js", - "./node_modules/@babel/highlight/lib/index.js", "./node_modules/@babel/parser/lib/index.js", "./node_modules/@babel/plugin-syntax-jsx/lib/index.js", "./node_modules/@babel/plugin-syntax-typescript/lib/index.js", @@ -1483,15 +1495,11 @@ "./node_modules/asn1/lib/index.js", "./node_modules/ast-types/def/babel-core.js", "./node_modules/ast-types/def/babel.js", - "./node_modules/ast-types/def/core-operators.js", "./node_modules/ast-types/def/core.js", "./node_modules/ast-types/def/es-proposals.js", - "./node_modules/ast-types/def/es2016.js", - "./node_modules/ast-types/def/es2017.js", - "./node_modules/ast-types/def/es2018.js", - "./node_modules/ast-types/def/es2019.js", "./node_modules/ast-types/def/es2020.js", "./node_modules/ast-types/def/es6.js", + "./node_modules/ast-types/def/es7.js", "./node_modules/ast-types/def/esprima.js", "./node_modules/ast-types/def/flow.js", "./node_modules/ast-types/def/jsx.js", @@ -1564,7 +1572,6 @@ "./node_modules/body-parser/node_modules/qs/lib/utils.js", "./node_modules/body-parser/node_modules/raw-body/index.js", "./node_modules/body-parser/node_modules/setprototypeof/index.js", - "./node_modules/brace-expansion/index.js", "./node_modules/braces/index.js", "./node_modules/braces/lib/compile.js", "./node_modules/braces/lib/constants.js", @@ -1697,7 +1704,6 @@ "./node_modules/concat-map/index.js", "./node_modules/content-disposition/index.js", "./node_modules/content-type/index.js", - "./node_modules/convert-source-map/index.js", "./node_modules/cookie-parser/index.js", "./node_modules/cookie-parser/node_modules/cookie/index.js", "./node_modules/cookie-signature/index.js", @@ -1793,14 +1799,6 @@ "./node_modules/escape-string-applescript/index.js", "./node_modules/escape-string-regexp/index.js", "./node_modules/esprima/dist/esprima.js", - "./node_modules/estree-to-babel/lib/comments.js", - "./node_modules/estree-to-babel/lib/estree-to-babel.js", - "./node_modules/estree-to-babel/lib/get-ast.js", - "./node_modules/estree-to-babel/lib/set-class-method.js", - "./node_modules/estree-to-babel/lib/set-class-private-name.js", - "./node_modules/estree-to-babel/lib/set-class-private-property.js", - "./node_modules/estree-to-babel/lib/set-literal.js", - "./node_modules/estree-to-babel/lib/traverse-object-expression.js", "./node_modules/esutils/lib/ast.js", "./node_modules/esutils/lib/keyword.js", "./node_modules/esutils/lib/utils.js", @@ -1996,7 +1994,6 @@ "./node_modules/get-intrinsic/index.js", "./node_modules/get-own-enumerable-property-symbols/lib/index.js", "./node_modules/get-port/index.js", - "./node_modules/get-stream/index.js", "./node_modules/getos/index.js", "./node_modules/getos/os.json", "./node_modules/gifwrap/src/bitmapimage.js", @@ -2207,7 +2204,6 @@ "./node_modules/ipaddr.js/lib/ipaddr.js", "./node_modules/is-binary-path/index.js", "./node_modules/is-buffer/index.js", - "./node_modules/is-ci/index.js", "./node_modules/is-core-module/core.json", "./node_modules/is-core-module/index.js", "./node_modules/is-dotfile/index.js", @@ -2217,6 +2213,7 @@ "./node_modules/is-glob/index.js", "./node_modules/is-html/index.js", "./node_modules/is-path-inside/index.js", + "./node_modules/is-plain-obj/index.js", "./node_modules/is-regexp/index.js", "./node_modules/is-stream/index.js", "./node_modules/is-typedarray/index.js", @@ -2473,6 +2470,7 @@ "./node_modules/mime-types/index.js", "./node_modules/mime/types.json", "./node_modules/min-indent/index.js", + "./node_modules/minimatch/node_modules/brace-expansion/index.js", "./node_modules/minimist/index.js", "./node_modules/mkdirp/index.js", "./node_modules/mocha-7.0.1/lib/browser/progress.js", @@ -2495,6 +2493,7 @@ "./node_modules/mocha-7.0.1/lib/reporters/markdown.js", "./node_modules/mocha-7.0.1/lib/stats-collector.js", "./node_modules/mocha-7.0.1/lib/utils.js", + "./node_modules/mocha-7.0.1/node_modules/brace-expansion/index.js", "./node_modules/mocha-7.0.1/node_modules/debug/node_modules/ms/index.js", "./node_modules/mocha-7.0.1/node_modules/debug/src/common.js", "./node_modules/mocha-7.0.1/node_modules/glob/common.js", @@ -2559,7 +2558,6 @@ "./node_modules/mount-point/index.js", "./node_modules/mount-point/node_modules/@sindresorhus/df/index.js", "./node_modules/move-file/index.js", - "./node_modules/move-file/node_modules/path-exists/index.js", "./node_modules/ms/index.js", "./node_modules/negotiator/index.js", "./node_modules/negotiator/lib/charset.js", @@ -2604,14 +2602,6 @@ "./node_modules/nexus/dist/typegenTypeHelpers.js", "./node_modules/nexus/package.json", "./node_modules/nice-try/src/index.js", - "./node_modules/node-fetch/node_modules/tr46/index.js", - "./node_modules/node-fetch/node_modules/tr46/lib/mappingTable.json", - "./node_modules/node-fetch/node_modules/webidl-conversions/lib/index.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL-impl.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/public-api.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/url-state-machine.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/utils.js", "./node_modules/node-forge/lib/baseN.js", "./node_modules/node-forge/lib/forge.js", "./node_modules/node-forge/lib/md.js", @@ -3089,67 +3079,69 @@ "./node_modules/raw-body/index.js", "./node_modules/raw-body/node_modules/bytes/index.js", "./node_modules/react-docgen/dist/Documentation.js", + "./node_modules/react-docgen/dist/babelParser.js", + "./node_modules/react-docgen/dist/error.js", + "./node_modules/react-docgen/dist/handlers/codeTypeHandler.js", "./node_modules/react-docgen/dist/handlers/componentDocblockHandler.js", "./node_modules/react-docgen/dist/handlers/componentMethodsHandler.js", "./node_modules/react-docgen/dist/handlers/componentMethodsJsDocHandler.js", "./node_modules/react-docgen/dist/handlers/defaultPropsHandler.js", "./node_modules/react-docgen/dist/handlers/displayNameHandler.js", - "./node_modules/react-docgen/dist/handlers/flowTypeHandler.js", "./node_modules/react-docgen/dist/handlers/index.js", - "./node_modules/react-docgen/dist/handlers/propDocBlockHandler.js", + "./node_modules/react-docgen/dist/handlers/propDocblockHandler.js", "./node_modules/react-docgen/dist/handlers/propTypeCompositionHandler.js", "./node_modules/react-docgen/dist/handlers/propTypeHandler.js", - "./node_modules/react-docgen/dist/importer/ignoreImports.js", - "./node_modules/react-docgen/dist/resolver/findAllComponentDefinitions.js", - "./node_modules/react-docgen/dist/resolver/findAllExportedComponentDefinitions.js", - "./node_modules/react-docgen/dist/resolver/findExportedComponentDefinition.js", + "./node_modules/react-docgen/dist/importer/ignoreImporter.js", + "./node_modules/react-docgen/dist/importer/index.js", + "./node_modules/react-docgen/dist/importer/makeFsImporter.js", + "./node_modules/react-docgen/dist/importer/makeIgnoreImporter.js", + "./node_modules/react-docgen/dist/parse.js", + "./node_modules/react-docgen/dist/resolver/ChainResolver.js", + "./node_modules/react-docgen/dist/resolver/FindAllDefinitionsResolver.js", + "./node_modules/react-docgen/dist/resolver/FindAnnotatedDefinitionsResolver.js", + "./node_modules/react-docgen/dist/resolver/FindExportedDefinitionsResolver.js", "./node_modules/react-docgen/dist/resolver/index.js", + "./node_modules/react-docgen/dist/resolver/utils/runResolver.js", "./node_modules/react-docgen/dist/utils/docblock.js", - "./node_modules/react-docgen/dist/utils/expressionTo.js", + "./node_modules/react-docgen/dist/utils/findComponentDefinition.js", + "./node_modules/react-docgen/dist/utils/findFunctionReturn.js", "./node_modules/react-docgen/dist/utils/flowUtilityTypes.js", "./node_modules/react-docgen/dist/utils/getClassMemberValuePath.js", "./node_modules/react-docgen/dist/utils/getFlowType.js", - "./node_modules/react-docgen/dist/utils/getFlowTypeFromReactComponent.js", "./node_modules/react-docgen/dist/utils/getMemberExpressionRoot.js", - "./node_modules/react-docgen/dist/utils/getMemberExpressionValuePath.js", - "./node_modules/react-docgen/dist/utils/getMemberValuePath.js", "./node_modules/react-docgen/dist/utils/getMembers.js", "./node_modules/react-docgen/dist/utils/getMethodDocumentation.js", "./node_modules/react-docgen/dist/utils/getNameOrValue.js", "./node_modules/react-docgen/dist/utils/getParameterName.js", "./node_modules/react-docgen/dist/utils/getPropType.js", - "./node_modules/react-docgen/dist/utils/getPropertyName.js", - "./node_modules/react-docgen/dist/utils/getPropertyValuePath.js", "./node_modules/react-docgen/dist/utils/getTSType.js", "./node_modules/react-docgen/dist/utils/getTypeAnnotation.js", + "./node_modules/react-docgen/dist/utils/getTypeFromReactComponent.js", + "./node_modules/react-docgen/dist/utils/getTypeIdentifier.js", "./node_modules/react-docgen/dist/utils/getTypeParameters.js", "./node_modules/react-docgen/dist/utils/index.js", "./node_modules/react-docgen/dist/utils/isDestructuringAssignment.js", "./node_modules/react-docgen/dist/utils/isExportsOrModuleAssignment.js", - "./node_modules/react-docgen/dist/utils/isReactBuiltinCall.js", "./node_modules/react-docgen/dist/utils/isReactChildrenElementCall.js", "./node_modules/react-docgen/dist/utils/isReactCloneElementCall.js", "./node_modules/react-docgen/dist/utils/isReactComponentClass.js", "./node_modules/react-docgen/dist/utils/isReactComponentMethod.js", "./node_modules/react-docgen/dist/utils/isReactCreateClassCall.js", "./node_modules/react-docgen/dist/utils/isReactCreateElementCall.js", - "./node_modules/react-docgen/dist/utils/isReactForwardRefCall.js", "./node_modules/react-docgen/dist/utils/isReactModuleName.js", "./node_modules/react-docgen/dist/utils/isRequiredPropType.js", "./node_modules/react-docgen/dist/utils/isStatelessComponent.js", "./node_modules/react-docgen/dist/utils/isUnreachableFlowType.js", - "./node_modules/react-docgen/dist/utils/match.js", "./node_modules/react-docgen/dist/utils/normalizeClassDefinition.js", "./node_modules/react-docgen/dist/utils/parseJsDoc.js", "./node_modules/react-docgen/dist/utils/postProcessDocumentation.js", "./node_modules/react-docgen/dist/utils/printValue.js", "./node_modules/react-docgen/dist/utils/resolveExportDeclaration.js", - "./node_modules/react-docgen/dist/utils/resolveFunctionDefinitionToReturnValue.js", "./node_modules/react-docgen/dist/utils/resolveGenericTypeAnnotation.js", "./node_modules/react-docgen/dist/utils/resolveHOC.js", "./node_modules/react-docgen/dist/utils/resolveObjectKeysToArray.js", + "./node_modules/react-docgen/dist/utils/resolveObjectPatternPropertyToValue.js", "./node_modules/react-docgen/dist/utils/resolveObjectValuesToArray.js", - "./node_modules/react-docgen/dist/utils/resolveToModule.js", "./node_modules/react-docgen/dist/utils/resolveToValue.js", "./node_modules/react-docgen/dist/utils/setPropDescription.js", "./node_modules/react-docgen/dist/utils/traverse.js", @@ -3157,7 +3149,34 @@ "./node_modules/react-docgen/node_modules/doctrine/lib/typed.js", "./node_modules/react-docgen/node_modules/doctrine/lib/utility.js", "./node_modules/react-docgen/node_modules/doctrine/package.json", + "./node_modules/react-docgen/node_modules/strip-indent/index.js", "./node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/recast/node_modules/ast-types/def/babel-core.js", + "./node_modules/recast/node_modules/ast-types/def/babel.js", + "./node_modules/recast/node_modules/ast-types/def/core-operators.js", + "./node_modules/recast/node_modules/ast-types/def/core.js", + "./node_modules/recast/node_modules/ast-types/def/es-proposals.js", + "./node_modules/recast/node_modules/ast-types/def/es2016.js", + "./node_modules/recast/node_modules/ast-types/def/es2017.js", + "./node_modules/recast/node_modules/ast-types/def/es2018.js", + "./node_modules/recast/node_modules/ast-types/def/es2019.js", + "./node_modules/recast/node_modules/ast-types/def/es2020.js", + "./node_modules/recast/node_modules/ast-types/def/es6.js", + "./node_modules/recast/node_modules/ast-types/def/esprima.js", + "./node_modules/recast/node_modules/ast-types/def/flow.js", + "./node_modules/recast/node_modules/ast-types/def/jsx.js", + "./node_modules/recast/node_modules/ast-types/def/type-annotations.js", + "./node_modules/recast/node_modules/ast-types/def/typescript.js", + "./node_modules/recast/node_modules/ast-types/fork.js", + "./node_modules/recast/node_modules/ast-types/gen/namedTypes.js", + "./node_modules/recast/node_modules/ast-types/lib/equiv.js", + "./node_modules/recast/node_modules/ast-types/lib/node-path.js", + "./node_modules/recast/node_modules/ast-types/lib/path-visitor.js", + "./node_modules/recast/node_modules/ast-types/lib/path.js", + "./node_modules/recast/node_modules/ast-types/lib/scope.js", + "./node_modules/recast/node_modules/ast-types/lib/shared.js", + "./node_modules/recast/node_modules/ast-types/lib/types.js", + "./node_modules/recast/node_modules/ast-types/main.js", "./node_modules/recast/parsers/_babel_options.js", "./node_modules/recast/parsers/babel.js", "./node_modules/recast/parsers/esprima.js", @@ -3196,6 +3215,7 @@ "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/resolveCommand.js", "./node_modules/run-applescript/node_modules/execa/index.js", "./node_modules/run-applescript/node_modules/execa/lib/stdio.js", + "./node_modules/run-applescript/node_modules/get-stream/index.js", "./node_modules/run-applescript/node_modules/path-key/index.js", "./node_modules/run-parallel/index.js", "./node_modules/sanitize-filename/index.js", @@ -3272,7 +3292,6 @@ "./node_modules/simple-swizzle/node_modules/is-arrayish/index.js", "./node_modules/slash/index.js", "./node_modules/sort-keys-length/index.js", - "./node_modules/sort-keys-length/node_modules/is-plain-obj/index.js", "./node_modules/sort-keys-length/node_modules/sort-keys/index.js", "./node_modules/source-map/lib/array-set.js", "./node_modules/source-map/lib/base64-vlq.js", @@ -3302,7 +3321,6 @@ "./node_modules/strip-ansi/index.js", "./node_modules/strip-eof/index.js", "./node_modules/strip-final-newline/index.js", - "./node_modules/strip-indent/index.js", "./node_modules/supports-color/node_modules/has-flag/index.js", "./node_modules/syntax-error/index.js", "./node_modules/systeminformation/lib/audio.js", @@ -3346,6 +3364,8 @@ "./node_modules/tough-cookie/lib/validators.js", "./node_modules/tough-cookie/lib/version.js", "./node_modules/tough-cookie/node_modules/universalify/index.js", + "./node_modules/tr46/index.js", + "./node_modules/tr46/lib/mappingTable.json", "./node_modules/trash/index.js", "./node_modules/trash/lib/linux.js", "./node_modules/trash/lib/macos.js", @@ -3473,6 +3493,7 @@ "./node_modules/universalify/index.js", "./node_modules/unpipe/index.js", "./node_modules/unused-filename/index.js", + "./node_modules/unused-filename/node_modules/path-exists/index.js", "./node_modules/url-parse/index.js", "./node_modules/utf8-stream/index.js", "./node_modules/utf8-stream/node_modules/isarray/index.js", @@ -3488,6 +3509,12 @@ "./node_modules/value-or-promise/build/main/ValueOrPromise.js", "./node_modules/value-or-promise/build/main/index.js", "./node_modules/vary/index.js", + "./node_modules/webidl-conversions/lib/index.js", + "./node_modules/whatwg-url/lib/URL-impl.js", + "./node_modules/whatwg-url/lib/URL.js", + "./node_modules/whatwg-url/lib/public-api.js", + "./node_modules/whatwg-url/lib/url-state-machine.js", + "./node_modules/whatwg-url/lib/utils.js", "./node_modules/which/which.js", "./node_modules/widest-line/index.js", "./node_modules/win-version-info/index.js", @@ -3560,7 +3587,6 @@ "./packages/config/src/project/utils.ts", "./packages/config/src/utils.ts", "./packages/config/src/validation.ts", - "./packages/data-context/node_modules/@babel/code-frame/lib/index.js", "./packages/data-context/node_modules/@babel/generator/lib/buffer.js", "./packages/data-context/node_modules/@babel/generator/lib/generators/base.js", "./packages/data-context/node_modules/@babel/generator/lib/generators/classes.js", @@ -3630,6 +3656,33 @@ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isCompatTag.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isReactComponent.js", "./packages/data-context/node_modules/@babel/parser/lib/index.js", + "./packages/data-context/node_modules/ast-types/def/babel-core.js", + "./packages/data-context/node_modules/ast-types/def/babel.js", + "./packages/data-context/node_modules/ast-types/def/core-operators.js", + "./packages/data-context/node_modules/ast-types/def/core.js", + "./packages/data-context/node_modules/ast-types/def/es-proposals.js", + "./packages/data-context/node_modules/ast-types/def/es2016.js", + "./packages/data-context/node_modules/ast-types/def/es2017.js", + "./packages/data-context/node_modules/ast-types/def/es2018.js", + "./packages/data-context/node_modules/ast-types/def/es2019.js", + "./packages/data-context/node_modules/ast-types/def/es2020.js", + "./packages/data-context/node_modules/ast-types/def/es6.js", + "./packages/data-context/node_modules/ast-types/def/esprima.js", + "./packages/data-context/node_modules/ast-types/def/flow.js", + "./packages/data-context/node_modules/ast-types/def/jsx.js", + "./packages/data-context/node_modules/ast-types/def/type-annotations.js", + "./packages/data-context/node_modules/ast-types/def/typescript.js", + "./packages/data-context/node_modules/ast-types/fork.js", + "./packages/data-context/node_modules/ast-types/gen/namedTypes.js", + "./packages/data-context/node_modules/ast-types/lib/equiv.js", + "./packages/data-context/node_modules/ast-types/lib/node-path.js", + "./packages/data-context/node_modules/ast-types/lib/path-visitor.js", + "./packages/data-context/node_modules/ast-types/lib/path.js", + "./packages/data-context/node_modules/ast-types/lib/scope.js", + "./packages/data-context/node_modules/ast-types/lib/shared.js", + "./packages/data-context/node_modules/ast-types/lib/types.js", + "./packages/data-context/node_modules/ast-types/main.js", + "./packages/data-context/node_modules/brace-expansion/index.js", "./packages/data-context/node_modules/cross-spawn/index.js", "./packages/data-context/node_modules/cross-spawn/lib/enoent.js", "./packages/data-context/node_modules/cross-spawn/lib/parse.js", @@ -3925,6 +3978,7 @@ "./packages/network/lib/http-utils.ts", "./packages/network/lib/index.ts", "./packages/network/lib/uri.ts", + "./packages/network/node_modules/brace-expansion/index.js", "./packages/proxy/lib/http/error-middleware.ts", "./packages/proxy/lib/http/util/ast-rewriter.ts", "./packages/proxy/lib/http/util/buffers.ts", @@ -3964,28 +4018,6 @@ "./packages/rewriter/lib/js-rules.ts", "./packages/rewriter/lib/js.ts", "./packages/rewriter/lib/util/source-maps.ts", - "./packages/rewriter/node_modules/ast-types/def/babel-core.js", - "./packages/rewriter/node_modules/ast-types/def/babel.js", - "./packages/rewriter/node_modules/ast-types/def/core.js", - "./packages/rewriter/node_modules/ast-types/def/es-proposals.js", - "./packages/rewriter/node_modules/ast-types/def/es2020.js", - "./packages/rewriter/node_modules/ast-types/def/es6.js", - "./packages/rewriter/node_modules/ast-types/def/es7.js", - "./packages/rewriter/node_modules/ast-types/def/esprima.js", - "./packages/rewriter/node_modules/ast-types/def/flow.js", - "./packages/rewriter/node_modules/ast-types/def/jsx.js", - "./packages/rewriter/node_modules/ast-types/def/type-annotations.js", - "./packages/rewriter/node_modules/ast-types/def/typescript.js", - "./packages/rewriter/node_modules/ast-types/fork.js", - "./packages/rewriter/node_modules/ast-types/gen/namedTypes.js", - "./packages/rewriter/node_modules/ast-types/lib/equiv.js", - "./packages/rewriter/node_modules/ast-types/lib/node-path.js", - "./packages/rewriter/node_modules/ast-types/lib/path-visitor.js", - "./packages/rewriter/node_modules/ast-types/lib/path.js", - "./packages/rewriter/node_modules/ast-types/lib/scope.js", - "./packages/rewriter/node_modules/ast-types/lib/shared.js", - "./packages/rewriter/node_modules/ast-types/lib/types.js", - "./packages/rewriter/node_modules/ast-types/main.js", "./packages/rewriter/node_modules/parse5-sax-parser/lib/parser-feedback-simulator.js", "./packages/rewriter/node_modules/parse5/lib/common/doctype.js", "./packages/rewriter/node_modules/parse5/lib/common/error-codes.js", @@ -4004,6 +4036,7 @@ "./packages/scaffold-config/node_modules/find-up/index.js", "./packages/scaffold-config/node_modules/locate-path/index.js", "./packages/scaffold-config/node_modules/p-locate/index.js", + "./packages/scaffold-config/node_modules/path-exists/index.js", "./packages/scaffold-config/src/commandFile.ts", "./packages/scaffold-config/src/component-index-template.ts", "./packages/scaffold-config/src/ct-detect-third-party.ts", @@ -4085,6 +4118,7 @@ "./packages/server/lib/util/find_process.js", "./packages/server/lib/util/fs.ts", "./packages/server/lib/util/get-windows-proxy.js", + "./packages/server/lib/util/graceful_crash_handling.ts", "./packages/server/lib/util/headers.js", "./packages/server/lib/util/human_time.js", "./packages/server/lib/util/net_profiler.js", @@ -4144,28 +4178,7 @@ "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/legacy-streams.js", "./packages/server/node_modules/@benmalka/foxdriver/package.json", "./packages/server/node_modules/ansi-regex/index.js", - "./packages/server/node_modules/ast-types/def/babel-core.js", - "./packages/server/node_modules/ast-types/def/babel.js", - "./packages/server/node_modules/ast-types/def/core.js", - "./packages/server/node_modules/ast-types/def/es-proposals.js", - "./packages/server/node_modules/ast-types/def/es2020.js", - "./packages/server/node_modules/ast-types/def/es6.js", - "./packages/server/node_modules/ast-types/def/es7.js", - "./packages/server/node_modules/ast-types/def/esprima.js", - "./packages/server/node_modules/ast-types/def/flow.js", - "./packages/server/node_modules/ast-types/def/jsx.js", - "./packages/server/node_modules/ast-types/def/type-annotations.js", - "./packages/server/node_modules/ast-types/def/typescript.js", - "./packages/server/node_modules/ast-types/fork.js", - "./packages/server/node_modules/ast-types/gen/namedTypes.js", - "./packages/server/node_modules/ast-types/lib/equiv.js", - "./packages/server/node_modules/ast-types/lib/node-path.js", - "./packages/server/node_modules/ast-types/lib/path-visitor.js", - "./packages/server/node_modules/ast-types/lib/path.js", - "./packages/server/node_modules/ast-types/lib/scope.js", - "./packages/server/node_modules/ast-types/lib/shared.js", - "./packages/server/node_modules/ast-types/lib/types.js", - "./packages/server/node_modules/ast-types/main.js", + "./packages/server/node_modules/brace-expansion/index.js", "./packages/server/node_modules/cli-table3/index.js", "./packages/server/node_modules/cli-table3/src/cell.js", "./packages/server/node_modules/cli-table3/src/layout-manager.js", @@ -4291,6 +4304,7 @@ "./packages/types/src/modeOptions.ts", "./packages/types/src/preferences.ts", "./packages/types/src/protocol.ts", + "./packages/types/src/proxy.ts", "./packages/types/src/reporter.ts", "./packages/types/src/server.ts", "./packages/types/src/spec.ts", @@ -4300,5 +4314,5 @@ "./tooling/v8-snapshot/cache/linux/snapshot-entry.js" ], "deferredHashFile": "yarn.lock", - "deferredHash": "20a0e4850189a69601ce25506a99e422cb79debe43a3bea1faf7d3a7f1a64b38" + "deferredHash": "76a16852d60376704f90a2e7377740b9015deb551aadaba74545f7268f8b7107" } \ No newline at end of file diff --git a/tooling/v8-snapshot/cache/win32/snapshot-meta.json b/tooling/v8-snapshot/cache/win32/snapshot-meta.json index 2cfbb645d02b..9e4365354a21 100644 --- a/tooling/v8-snapshot/cache/win32/snapshot-meta.json +++ b/tooling/v8-snapshot/cache/win32/snapshot-meta.json @@ -44,6 +44,7 @@ "./node_modules/prettier/parser-meriyah.js", "./node_modules/prettier/parser-typescript.js", "./node_modules/prettier/third-party.js", + "./node_modules/react-docgen/dist/FileState.js", "./node_modules/send/node_modules/debug/src/node.js", "./node_modules/stream-parser/node_modules/debug/src/node.js", "./node_modules/tcp-port-used/node_modules/debug/src/node.js", @@ -83,6 +84,7 @@ "deferred": [ "./node_modules/@ampproject/remapping/dist/remapping.umd.js", "./node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js", + "./node_modules/@babel/code-frame/lib/index.js", "./node_modules/@babel/core/lib/config/config-chain.js", "./node_modules/@babel/core/lib/config/config-descriptors.js", "./node_modules/@babel/core/lib/config/files/configuration.js", @@ -104,6 +106,7 @@ "./node_modules/@babel/core/lib/transformation/file/file.js", "./node_modules/@babel/core/lib/transformation/normalize-file.js", "./node_modules/@babel/core/lib/vendor/import-meta-resolve.js", + "./node_modules/@babel/core/node_modules/convert-source-map/index.js", "./node_modules/@babel/core/node_modules/semver/semver.js", "./node_modules/@babel/generator/lib/node/index.js", "./node_modules/@babel/generator/lib/node/whitespace.js", @@ -116,9 +119,11 @@ "./node_modules/@babel/helper-create-class-features-plugin/node_modules/semver/semver.js", "./node_modules/@babel/helper-module-transforms/lib/dynamic-import.js", "./node_modules/@babel/helper-module-transforms/lib/index.js", + "./node_modules/@babel/helper-module-transforms/lib/lazy-modules.js", "./node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js", "./node_modules/@babel/helper-module-transforms/lib/rewrite-this.js", "./node_modules/@babel/helper-replace-supers/lib/index.js", + "./node_modules/@babel/highlight/lib/index.js", "./node_modules/@babel/plugin-transform-modules-commonjs/lib/dynamic-import.js", "./node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js", "./node_modules/@babel/plugin-transform-typescript/lib/const-enum.js", @@ -139,6 +144,7 @@ "./node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js", "./node_modules/@babel/types/lib/builders/generated/index.js", "./node_modules/@babel/types/lib/builders/generated/uppercase.js", + "./node_modules/@babel/types/lib/builders/productions.js", "./node_modules/@babel/types/lib/builders/react/buildChildren.js", "./node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js", "./node_modules/@babel/types/lib/builders/validateNode.js", @@ -247,7 +253,6 @@ "./node_modules/compression/node_modules/debug/src/index.js", "./node_modules/compression/node_modules/safe-buffer/index.js", "./node_modules/concat-stream/index.js", - "./node_modules/convert-source-map/node_modules/safe-buffer/index.js", "./node_modules/cp-file/cp-file-error.js", "./node_modules/cp-file/fs.js", "./node_modules/cp-file/node_modules/semver/semver.js", @@ -305,7 +310,6 @@ "./node_modules/fs-extra/lib/json/index.js", "./node_modules/fs-extra/lib/json/jsonfile.js", "./node_modules/fs-extra/lib/path-exists/index.js", - "./node_modules/get-stream/buffer-stream.js", "./node_modules/getenv/index.js", "./node_modules/gifwrap/src/gifcodec.js", "./node_modules/gifwrap/src/gifutil.js", @@ -482,11 +486,19 @@ "./node_modules/pseudomap/map.js", "./node_modules/pumpify/index.js", "./node_modules/queue/index.js", - "./node_modules/react-docgen/dist/babelParser.js", - "./node_modules/react-docgen/dist/importer/index.js", - "./node_modules/react-docgen/dist/importer/makeFsImporter.js", + "./node_modules/react-docgen/dist/config.js", + "./node_modules/react-docgen/dist/importer/fsImporter.js", "./node_modules/react-docgen/dist/main.js", - "./node_modules/react-docgen/dist/parse.js", + "./node_modules/react-docgen/dist/utils/expressionTo.js", + "./node_modules/react-docgen/dist/utils/getMemberExpressionValuePath.js", + "./node_modules/react-docgen/dist/utils/getMemberValuePath.js", + "./node_modules/react-docgen/dist/utils/getPropertyName.js", + "./node_modules/react-docgen/dist/utils/getPropertyValuePath.js", + "./node_modules/react-docgen/dist/utils/isReactBuiltinCall.js", + "./node_modules/react-docgen/dist/utils/isReactForwardRefCall.js", + "./node_modules/react-docgen/dist/utils/resolveFunctionDefinitionToReturnValue.js", + "./node_modules/react-docgen/dist/utils/resolveToModule.js", + "./node_modules/react-docgen/dist/utils/ts-types/index.js", "./node_modules/readable-stream/lib/_stream_duplex.js", "./node_modules/readable-stream/lib/_stream_passthrough.js", "./node_modules/readable-stream/lib/_stream_readable.js", @@ -515,6 +527,7 @@ "./node_modules/resolve/lib/homedir.js", "./node_modules/resolve/lib/sync.js", "./node_modules/run-applescript/node_modules/execa/lib/errname.js", + "./node_modules/run-applescript/node_modules/get-stream/buffer-stream.js", "./node_modules/run-applescript/node_modules/semver/semver.js", "./node_modules/safe-buffer/index.js", "./node_modules/safer-buffer/safer.js", @@ -605,12 +618,14 @@ "./packages/config/index.js", "./packages/config/src/options.ts", "./packages/data-context/index.js", + "./packages/data-context/node_modules/@babel/code-frame/lib/index.js", "./packages/data-context/node_modules/@babel/generator/lib/node/index.js", "./packages/data-context/node_modules/@babel/generator/lib/node/whitespace.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/index.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/generated/uppercase.js", + "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/productions.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/react/buildChildren.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/builders/validateNode.js", @@ -847,13 +862,11 @@ "./tooling/v8-snapshot/dist/setup/v8-snapshot-entry-cy-in-cy.js" ], "healthy": [ - "./node_modules/@babel/code-frame/lib/index.js", "./node_modules/@babel/compat-data/data/native-modules.json", "./node_modules/@babel/compat-data/data/plugins.json", "./node_modules/@babel/compat-data/native-modules.js", "./node_modules/@babel/compat-data/plugins.js", "./node_modules/@babel/core/lib/config/caching.js", - "./node_modules/@babel/core/lib/config/files/import-meta-resolve.js", "./node_modules/@babel/core/lib/config/files/import.cjs", "./node_modules/@babel/core/lib/config/files/package.js", "./node_modules/@babel/core/lib/config/files/utils.js", @@ -935,7 +948,6 @@ "./node_modules/@babel/helpers/lib/helpers-generated.js", "./node_modules/@babel/helpers/lib/helpers.js", "./node_modules/@babel/helpers/lib/index.js", - "./node_modules/@babel/highlight/lib/index.js", "./node_modules/@babel/parser/lib/index.js", "./node_modules/@babel/plugin-syntax-jsx/lib/index.js", "./node_modules/@babel/plugin-syntax-typescript/lib/index.js", @@ -1486,15 +1498,11 @@ "./node_modules/asn1/lib/index.js", "./node_modules/ast-types/def/babel-core.js", "./node_modules/ast-types/def/babel.js", - "./node_modules/ast-types/def/core-operators.js", "./node_modules/ast-types/def/core.js", "./node_modules/ast-types/def/es-proposals.js", - "./node_modules/ast-types/def/es2016.js", - "./node_modules/ast-types/def/es2017.js", - "./node_modules/ast-types/def/es2018.js", - "./node_modules/ast-types/def/es2019.js", "./node_modules/ast-types/def/es2020.js", "./node_modules/ast-types/def/es6.js", + "./node_modules/ast-types/def/es7.js", "./node_modules/ast-types/def/esprima.js", "./node_modules/ast-types/def/flow.js", "./node_modules/ast-types/def/jsx.js", @@ -1567,7 +1575,6 @@ "./node_modules/body-parser/node_modules/qs/lib/utils.js", "./node_modules/body-parser/node_modules/raw-body/index.js", "./node_modules/body-parser/node_modules/setprototypeof/index.js", - "./node_modules/brace-expansion/index.js", "./node_modules/braces/index.js", "./node_modules/braces/lib/compile.js", "./node_modules/braces/lib/constants.js", @@ -1700,7 +1707,6 @@ "./node_modules/concat-map/index.js", "./node_modules/content-disposition/index.js", "./node_modules/content-type/index.js", - "./node_modules/convert-source-map/index.js", "./node_modules/cookie-parser/index.js", "./node_modules/cookie-parser/node_modules/cookie/index.js", "./node_modules/cookie-signature/index.js", @@ -1796,14 +1802,6 @@ "./node_modules/escape-string-applescript/index.js", "./node_modules/escape-string-regexp/index.js", "./node_modules/esprima/dist/esprima.js", - "./node_modules/estree-to-babel/lib/comments.js", - "./node_modules/estree-to-babel/lib/estree-to-babel.js", - "./node_modules/estree-to-babel/lib/get-ast.js", - "./node_modules/estree-to-babel/lib/set-class-method.js", - "./node_modules/estree-to-babel/lib/set-class-private-name.js", - "./node_modules/estree-to-babel/lib/set-class-private-property.js", - "./node_modules/estree-to-babel/lib/set-literal.js", - "./node_modules/estree-to-babel/lib/traverse-object-expression.js", "./node_modules/esutils/lib/ast.js", "./node_modules/esutils/lib/keyword.js", "./node_modules/esutils/lib/utils.js", @@ -1999,7 +1997,6 @@ "./node_modules/get-intrinsic/index.js", "./node_modules/get-own-enumerable-property-symbols/lib/index.js", "./node_modules/get-port/index.js", - "./node_modules/get-stream/index.js", "./node_modules/getos/index.js", "./node_modules/getos/os.json", "./node_modules/gifwrap/src/bitmapimage.js", @@ -2210,7 +2207,6 @@ "./node_modules/ipaddr.js/lib/ipaddr.js", "./node_modules/is-binary-path/index.js", "./node_modules/is-buffer/index.js", - "./node_modules/is-ci/index.js", "./node_modules/is-core-module/core.json", "./node_modules/is-core-module/index.js", "./node_modules/is-dotfile/index.js", @@ -2220,6 +2216,7 @@ "./node_modules/is-glob/index.js", "./node_modules/is-html/index.js", "./node_modules/is-path-inside/index.js", + "./node_modules/is-plain-obj/index.js", "./node_modules/is-regexp/index.js", "./node_modules/is-stream/index.js", "./node_modules/is-typedarray/index.js", @@ -2476,6 +2473,7 @@ "./node_modules/mime-types/index.js", "./node_modules/mime/types.json", "./node_modules/min-indent/index.js", + "./node_modules/minimatch/node_modules/brace-expansion/index.js", "./node_modules/minimist/index.js", "./node_modules/mkdirp/index.js", "./node_modules/mocha-7.0.1/lib/browser/progress.js", @@ -2498,6 +2496,7 @@ "./node_modules/mocha-7.0.1/lib/reporters/markdown.js", "./node_modules/mocha-7.0.1/lib/stats-collector.js", "./node_modules/mocha-7.0.1/lib/utils.js", + "./node_modules/mocha-7.0.1/node_modules/brace-expansion/index.js", "./node_modules/mocha-7.0.1/node_modules/debug/node_modules/ms/index.js", "./node_modules/mocha-7.0.1/node_modules/debug/src/common.js", "./node_modules/mocha-7.0.1/node_modules/glob/common.js", @@ -2562,7 +2561,6 @@ "./node_modules/mount-point/index.js", "./node_modules/mount-point/node_modules/@sindresorhus/df/index.js", "./node_modules/move-file/index.js", - "./node_modules/move-file/node_modules/path-exists/index.js", "./node_modules/ms/index.js", "./node_modules/negotiator/index.js", "./node_modules/negotiator/lib/charset.js", @@ -2607,14 +2605,6 @@ "./node_modules/nexus/dist/typegenTypeHelpers.js", "./node_modules/nexus/package.json", "./node_modules/nice-try/src/index.js", - "./node_modules/node-fetch/node_modules/tr46/index.js", - "./node_modules/node-fetch/node_modules/tr46/lib/mappingTable.json", - "./node_modules/node-fetch/node_modules/webidl-conversions/lib/index.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL-impl.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/URL.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/public-api.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/url-state-machine.js", - "./node_modules/node-fetch/node_modules/whatwg-url/lib/utils.js", "./node_modules/node-forge/lib/baseN.js", "./node_modules/node-forge/lib/forge.js", "./node_modules/node-forge/lib/md.js", @@ -3093,67 +3083,69 @@ "./node_modules/raw-body/index.js", "./node_modules/raw-body/node_modules/bytes/index.js", "./node_modules/react-docgen/dist/Documentation.js", + "./node_modules/react-docgen/dist/babelParser.js", + "./node_modules/react-docgen/dist/error.js", + "./node_modules/react-docgen/dist/handlers/codeTypeHandler.js", "./node_modules/react-docgen/dist/handlers/componentDocblockHandler.js", "./node_modules/react-docgen/dist/handlers/componentMethodsHandler.js", "./node_modules/react-docgen/dist/handlers/componentMethodsJsDocHandler.js", "./node_modules/react-docgen/dist/handlers/defaultPropsHandler.js", "./node_modules/react-docgen/dist/handlers/displayNameHandler.js", - "./node_modules/react-docgen/dist/handlers/flowTypeHandler.js", "./node_modules/react-docgen/dist/handlers/index.js", - "./node_modules/react-docgen/dist/handlers/propDocBlockHandler.js", + "./node_modules/react-docgen/dist/handlers/propDocblockHandler.js", "./node_modules/react-docgen/dist/handlers/propTypeCompositionHandler.js", "./node_modules/react-docgen/dist/handlers/propTypeHandler.js", - "./node_modules/react-docgen/dist/importer/ignoreImports.js", - "./node_modules/react-docgen/dist/resolver/findAllComponentDefinitions.js", - "./node_modules/react-docgen/dist/resolver/findAllExportedComponentDefinitions.js", - "./node_modules/react-docgen/dist/resolver/findExportedComponentDefinition.js", + "./node_modules/react-docgen/dist/importer/ignoreImporter.js", + "./node_modules/react-docgen/dist/importer/index.js", + "./node_modules/react-docgen/dist/importer/makeFsImporter.js", + "./node_modules/react-docgen/dist/importer/makeIgnoreImporter.js", + "./node_modules/react-docgen/dist/parse.js", + "./node_modules/react-docgen/dist/resolver/ChainResolver.js", + "./node_modules/react-docgen/dist/resolver/FindAllDefinitionsResolver.js", + "./node_modules/react-docgen/dist/resolver/FindAnnotatedDefinitionsResolver.js", + "./node_modules/react-docgen/dist/resolver/FindExportedDefinitionsResolver.js", "./node_modules/react-docgen/dist/resolver/index.js", + "./node_modules/react-docgen/dist/resolver/utils/runResolver.js", "./node_modules/react-docgen/dist/utils/docblock.js", - "./node_modules/react-docgen/dist/utils/expressionTo.js", + "./node_modules/react-docgen/dist/utils/findComponentDefinition.js", + "./node_modules/react-docgen/dist/utils/findFunctionReturn.js", "./node_modules/react-docgen/dist/utils/flowUtilityTypes.js", "./node_modules/react-docgen/dist/utils/getClassMemberValuePath.js", "./node_modules/react-docgen/dist/utils/getFlowType.js", - "./node_modules/react-docgen/dist/utils/getFlowTypeFromReactComponent.js", "./node_modules/react-docgen/dist/utils/getMemberExpressionRoot.js", - "./node_modules/react-docgen/dist/utils/getMemberExpressionValuePath.js", - "./node_modules/react-docgen/dist/utils/getMemberValuePath.js", "./node_modules/react-docgen/dist/utils/getMembers.js", "./node_modules/react-docgen/dist/utils/getMethodDocumentation.js", "./node_modules/react-docgen/dist/utils/getNameOrValue.js", "./node_modules/react-docgen/dist/utils/getParameterName.js", "./node_modules/react-docgen/dist/utils/getPropType.js", - "./node_modules/react-docgen/dist/utils/getPropertyName.js", - "./node_modules/react-docgen/dist/utils/getPropertyValuePath.js", "./node_modules/react-docgen/dist/utils/getTSType.js", "./node_modules/react-docgen/dist/utils/getTypeAnnotation.js", + "./node_modules/react-docgen/dist/utils/getTypeFromReactComponent.js", + "./node_modules/react-docgen/dist/utils/getTypeIdentifier.js", "./node_modules/react-docgen/dist/utils/getTypeParameters.js", "./node_modules/react-docgen/dist/utils/index.js", "./node_modules/react-docgen/dist/utils/isDestructuringAssignment.js", "./node_modules/react-docgen/dist/utils/isExportsOrModuleAssignment.js", - "./node_modules/react-docgen/dist/utils/isReactBuiltinCall.js", "./node_modules/react-docgen/dist/utils/isReactChildrenElementCall.js", "./node_modules/react-docgen/dist/utils/isReactCloneElementCall.js", "./node_modules/react-docgen/dist/utils/isReactComponentClass.js", "./node_modules/react-docgen/dist/utils/isReactComponentMethod.js", "./node_modules/react-docgen/dist/utils/isReactCreateClassCall.js", "./node_modules/react-docgen/dist/utils/isReactCreateElementCall.js", - "./node_modules/react-docgen/dist/utils/isReactForwardRefCall.js", "./node_modules/react-docgen/dist/utils/isReactModuleName.js", "./node_modules/react-docgen/dist/utils/isRequiredPropType.js", "./node_modules/react-docgen/dist/utils/isStatelessComponent.js", "./node_modules/react-docgen/dist/utils/isUnreachableFlowType.js", - "./node_modules/react-docgen/dist/utils/match.js", "./node_modules/react-docgen/dist/utils/normalizeClassDefinition.js", "./node_modules/react-docgen/dist/utils/parseJsDoc.js", "./node_modules/react-docgen/dist/utils/postProcessDocumentation.js", "./node_modules/react-docgen/dist/utils/printValue.js", "./node_modules/react-docgen/dist/utils/resolveExportDeclaration.js", - "./node_modules/react-docgen/dist/utils/resolveFunctionDefinitionToReturnValue.js", "./node_modules/react-docgen/dist/utils/resolveGenericTypeAnnotation.js", "./node_modules/react-docgen/dist/utils/resolveHOC.js", "./node_modules/react-docgen/dist/utils/resolveObjectKeysToArray.js", + "./node_modules/react-docgen/dist/utils/resolveObjectPatternPropertyToValue.js", "./node_modules/react-docgen/dist/utils/resolveObjectValuesToArray.js", - "./node_modules/react-docgen/dist/utils/resolveToModule.js", "./node_modules/react-docgen/dist/utils/resolveToValue.js", "./node_modules/react-docgen/dist/utils/setPropDescription.js", "./node_modules/react-docgen/dist/utils/traverse.js", @@ -3161,7 +3153,34 @@ "./node_modules/react-docgen/node_modules/doctrine/lib/typed.js", "./node_modules/react-docgen/node_modules/doctrine/lib/utility.js", "./node_modules/react-docgen/node_modules/doctrine/package.json", + "./node_modules/react-docgen/node_modules/strip-indent/index.js", "./node_modules/readable-stream/lib/internal/streams/destroy.js", + "./node_modules/recast/node_modules/ast-types/def/babel-core.js", + "./node_modules/recast/node_modules/ast-types/def/babel.js", + "./node_modules/recast/node_modules/ast-types/def/core-operators.js", + "./node_modules/recast/node_modules/ast-types/def/core.js", + "./node_modules/recast/node_modules/ast-types/def/es-proposals.js", + "./node_modules/recast/node_modules/ast-types/def/es2016.js", + "./node_modules/recast/node_modules/ast-types/def/es2017.js", + "./node_modules/recast/node_modules/ast-types/def/es2018.js", + "./node_modules/recast/node_modules/ast-types/def/es2019.js", + "./node_modules/recast/node_modules/ast-types/def/es2020.js", + "./node_modules/recast/node_modules/ast-types/def/es6.js", + "./node_modules/recast/node_modules/ast-types/def/esprima.js", + "./node_modules/recast/node_modules/ast-types/def/flow.js", + "./node_modules/recast/node_modules/ast-types/def/jsx.js", + "./node_modules/recast/node_modules/ast-types/def/type-annotations.js", + "./node_modules/recast/node_modules/ast-types/def/typescript.js", + "./node_modules/recast/node_modules/ast-types/fork.js", + "./node_modules/recast/node_modules/ast-types/gen/namedTypes.js", + "./node_modules/recast/node_modules/ast-types/lib/equiv.js", + "./node_modules/recast/node_modules/ast-types/lib/node-path.js", + "./node_modules/recast/node_modules/ast-types/lib/path-visitor.js", + "./node_modules/recast/node_modules/ast-types/lib/path.js", + "./node_modules/recast/node_modules/ast-types/lib/scope.js", + "./node_modules/recast/node_modules/ast-types/lib/shared.js", + "./node_modules/recast/node_modules/ast-types/lib/types.js", + "./node_modules/recast/node_modules/ast-types/main.js", "./node_modules/recast/parsers/_babel_options.js", "./node_modules/recast/parsers/babel.js", "./node_modules/recast/parsers/esprima.js", @@ -3198,6 +3217,7 @@ "./node_modules/run-applescript/node_modules/cross-spawn/lib/util/resolveCommand.js", "./node_modules/run-applescript/node_modules/execa/index.js", "./node_modules/run-applescript/node_modules/execa/lib/stdio.js", + "./node_modules/run-applescript/node_modules/get-stream/index.js", "./node_modules/run-applescript/node_modules/path-key/index.js", "./node_modules/run-parallel/index.js", "./node_modules/sanitize-filename/index.js", @@ -3274,7 +3294,6 @@ "./node_modules/simple-swizzle/node_modules/is-arrayish/index.js", "./node_modules/slash/index.js", "./node_modules/sort-keys-length/index.js", - "./node_modules/sort-keys-length/node_modules/is-plain-obj/index.js", "./node_modules/sort-keys-length/node_modules/sort-keys/index.js", "./node_modules/source-map/lib/array-set.js", "./node_modules/source-map/lib/base64-vlq.js", @@ -3304,7 +3323,6 @@ "./node_modules/strip-ansi/index.js", "./node_modules/strip-eof/index.js", "./node_modules/strip-final-newline/index.js", - "./node_modules/strip-indent/index.js", "./node_modules/supports-color/node_modules/has-flag/index.js", "./node_modules/syntax-error/index.js", "./node_modules/systeminformation/lib/audio.js", @@ -3347,6 +3365,8 @@ "./node_modules/tough-cookie/lib/validators.js", "./node_modules/tough-cookie/lib/version.js", "./node_modules/tough-cookie/node_modules/universalify/index.js", + "./node_modules/tr46/index.js", + "./node_modules/tr46/lib/mappingTable.json", "./node_modules/trash/index.js", "./node_modules/trash/lib/linux.js", "./node_modules/trash/lib/macos.js", @@ -3474,6 +3494,7 @@ "./node_modules/universalify/index.js", "./node_modules/unpipe/index.js", "./node_modules/unused-filename/index.js", + "./node_modules/unused-filename/node_modules/path-exists/index.js", "./node_modules/url-parse/index.js", "./node_modules/utf8-stream/index.js", "./node_modules/utf8-stream/node_modules/isarray/index.js", @@ -3489,6 +3510,12 @@ "./node_modules/value-or-promise/build/main/ValueOrPromise.js", "./node_modules/value-or-promise/build/main/index.js", "./node_modules/vary/index.js", + "./node_modules/webidl-conversions/lib/index.js", + "./node_modules/whatwg-url/lib/URL-impl.js", + "./node_modules/whatwg-url/lib/URL.js", + "./node_modules/whatwg-url/lib/public-api.js", + "./node_modules/whatwg-url/lib/url-state-machine.js", + "./node_modules/whatwg-url/lib/utils.js", "./node_modules/which/which.js", "./node_modules/widest-line/index.js", "./node_modules/wonka/dist/wonka.js", @@ -3560,7 +3587,6 @@ "./packages/config/src/project/utils.ts", "./packages/config/src/utils.ts", "./packages/config/src/validation.ts", - "./packages/data-context/node_modules/@babel/code-frame/lib/index.js", "./packages/data-context/node_modules/@babel/generator/lib/buffer.js", "./packages/data-context/node_modules/@babel/generator/lib/generators/base.js", "./packages/data-context/node_modules/@babel/generator/lib/generators/classes.js", @@ -3630,6 +3656,33 @@ "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isCompatTag.js", "./packages/data-context/node_modules/@babel/generator/node_modules/@babel/types/lib/validators/react/isReactComponent.js", "./packages/data-context/node_modules/@babel/parser/lib/index.js", + "./packages/data-context/node_modules/ast-types/def/babel-core.js", + "./packages/data-context/node_modules/ast-types/def/babel.js", + "./packages/data-context/node_modules/ast-types/def/core-operators.js", + "./packages/data-context/node_modules/ast-types/def/core.js", + "./packages/data-context/node_modules/ast-types/def/es-proposals.js", + "./packages/data-context/node_modules/ast-types/def/es2016.js", + "./packages/data-context/node_modules/ast-types/def/es2017.js", + "./packages/data-context/node_modules/ast-types/def/es2018.js", + "./packages/data-context/node_modules/ast-types/def/es2019.js", + "./packages/data-context/node_modules/ast-types/def/es2020.js", + "./packages/data-context/node_modules/ast-types/def/es6.js", + "./packages/data-context/node_modules/ast-types/def/esprima.js", + "./packages/data-context/node_modules/ast-types/def/flow.js", + "./packages/data-context/node_modules/ast-types/def/jsx.js", + "./packages/data-context/node_modules/ast-types/def/type-annotations.js", + "./packages/data-context/node_modules/ast-types/def/typescript.js", + "./packages/data-context/node_modules/ast-types/fork.js", + "./packages/data-context/node_modules/ast-types/gen/namedTypes.js", + "./packages/data-context/node_modules/ast-types/lib/equiv.js", + "./packages/data-context/node_modules/ast-types/lib/node-path.js", + "./packages/data-context/node_modules/ast-types/lib/path-visitor.js", + "./packages/data-context/node_modules/ast-types/lib/path.js", + "./packages/data-context/node_modules/ast-types/lib/scope.js", + "./packages/data-context/node_modules/ast-types/lib/shared.js", + "./packages/data-context/node_modules/ast-types/lib/types.js", + "./packages/data-context/node_modules/ast-types/main.js", + "./packages/data-context/node_modules/brace-expansion/index.js", "./packages/data-context/node_modules/cross-spawn/index.js", "./packages/data-context/node_modules/cross-spawn/lib/enoent.js", "./packages/data-context/node_modules/cross-spawn/lib/parse.js", @@ -3925,6 +3978,7 @@ "./packages/network/lib/http-utils.ts", "./packages/network/lib/index.ts", "./packages/network/lib/uri.ts", + "./packages/network/node_modules/brace-expansion/index.js", "./packages/proxy/lib/http/error-middleware.ts", "./packages/proxy/lib/http/util/ast-rewriter.ts", "./packages/proxy/lib/http/util/buffers.ts", @@ -3964,28 +4018,6 @@ "./packages/rewriter/lib/js-rules.ts", "./packages/rewriter/lib/js.ts", "./packages/rewriter/lib/util/source-maps.ts", - "./packages/rewriter/node_modules/ast-types/def/babel-core.js", - "./packages/rewriter/node_modules/ast-types/def/babel.js", - "./packages/rewriter/node_modules/ast-types/def/core.js", - "./packages/rewriter/node_modules/ast-types/def/es-proposals.js", - "./packages/rewriter/node_modules/ast-types/def/es2020.js", - "./packages/rewriter/node_modules/ast-types/def/es6.js", - "./packages/rewriter/node_modules/ast-types/def/es7.js", - "./packages/rewriter/node_modules/ast-types/def/esprima.js", - "./packages/rewriter/node_modules/ast-types/def/flow.js", - "./packages/rewriter/node_modules/ast-types/def/jsx.js", - "./packages/rewriter/node_modules/ast-types/def/type-annotations.js", - "./packages/rewriter/node_modules/ast-types/def/typescript.js", - "./packages/rewriter/node_modules/ast-types/fork.js", - "./packages/rewriter/node_modules/ast-types/gen/namedTypes.js", - "./packages/rewriter/node_modules/ast-types/lib/equiv.js", - "./packages/rewriter/node_modules/ast-types/lib/node-path.js", - "./packages/rewriter/node_modules/ast-types/lib/path-visitor.js", - "./packages/rewriter/node_modules/ast-types/lib/path.js", - "./packages/rewriter/node_modules/ast-types/lib/scope.js", - "./packages/rewriter/node_modules/ast-types/lib/shared.js", - "./packages/rewriter/node_modules/ast-types/lib/types.js", - "./packages/rewriter/node_modules/ast-types/main.js", "./packages/rewriter/node_modules/parse5-sax-parser/lib/parser-feedback-simulator.js", "./packages/rewriter/node_modules/parse5/lib/common/doctype.js", "./packages/rewriter/node_modules/parse5/lib/common/error-codes.js", @@ -4004,6 +4036,7 @@ "./packages/scaffold-config/node_modules/find-up/index.js", "./packages/scaffold-config/node_modules/locate-path/index.js", "./packages/scaffold-config/node_modules/p-locate/index.js", + "./packages/scaffold-config/node_modules/path-exists/index.js", "./packages/scaffold-config/src/commandFile.ts", "./packages/scaffold-config/src/component-index-template.ts", "./packages/scaffold-config/src/ct-detect-third-party.ts", @@ -4085,6 +4118,7 @@ "./packages/server/lib/util/find_process.js", "./packages/server/lib/util/fs.ts", "./packages/server/lib/util/get-windows-proxy.js", + "./packages/server/lib/util/graceful_crash_handling.ts", "./packages/server/lib/util/headers.js", "./packages/server/lib/util/human_time.js", "./packages/server/lib/util/net_profiler.js", @@ -4144,28 +4178,7 @@ "./packages/server/node_modules/@benmalka/foxdriver/node_modules/graceful-fs/legacy-streams.js", "./packages/server/node_modules/@benmalka/foxdriver/package.json", "./packages/server/node_modules/ansi-regex/index.js", - "./packages/server/node_modules/ast-types/def/babel-core.js", - "./packages/server/node_modules/ast-types/def/babel.js", - "./packages/server/node_modules/ast-types/def/core.js", - "./packages/server/node_modules/ast-types/def/es-proposals.js", - "./packages/server/node_modules/ast-types/def/es2020.js", - "./packages/server/node_modules/ast-types/def/es6.js", - "./packages/server/node_modules/ast-types/def/es7.js", - "./packages/server/node_modules/ast-types/def/esprima.js", - "./packages/server/node_modules/ast-types/def/flow.js", - "./packages/server/node_modules/ast-types/def/jsx.js", - "./packages/server/node_modules/ast-types/def/type-annotations.js", - "./packages/server/node_modules/ast-types/def/typescript.js", - "./packages/server/node_modules/ast-types/fork.js", - "./packages/server/node_modules/ast-types/gen/namedTypes.js", - "./packages/server/node_modules/ast-types/lib/equiv.js", - "./packages/server/node_modules/ast-types/lib/node-path.js", - "./packages/server/node_modules/ast-types/lib/path-visitor.js", - "./packages/server/node_modules/ast-types/lib/path.js", - "./packages/server/node_modules/ast-types/lib/scope.js", - "./packages/server/node_modules/ast-types/lib/shared.js", - "./packages/server/node_modules/ast-types/lib/types.js", - "./packages/server/node_modules/ast-types/main.js", + "./packages/server/node_modules/brace-expansion/index.js", "./packages/server/node_modules/cli-table3/index.js", "./packages/server/node_modules/cli-table3/src/cell.js", "./packages/server/node_modules/cli-table3/src/layout-manager.js", @@ -4291,6 +4304,7 @@ "./packages/types/src/modeOptions.ts", "./packages/types/src/preferences.ts", "./packages/types/src/protocol.ts", + "./packages/types/src/proxy.ts", "./packages/types/src/reporter.ts", "./packages/types/src/server.ts", "./packages/types/src/spec.ts", @@ -4300,5 +4314,5 @@ "./tooling/v8-snapshot/cache/win32/snapshot-entry.js" ], "deferredHashFile": "yarn.lock", - "deferredHash": "cf4e9c12ad34bb6a943f5346777e1c22aadbadfb169463b0179c4f46035deb97" + "deferredHash": "427ddaad1d13eb1411542f629fb751ec0f6beb721c7fc9ce9a88a27d31c52e59" } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index a20780e072f4..c9f599222a99 100644 --- a/yarn.lock +++ b/yarn.lock @@ -843,37 +843,38 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== dependencies: - "@babel/highlight" "^7.22.5" + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" "@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.5", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== -"@babel/core@7.22.9", "@babel/core@^7.0.0", "@babel/core@^7.17.9", "@babel/core@^7.20.7", "@babel/core@^7.21.3", "@babel/core@^7.21.4", "@babel/core@^7.22.9", "@babel/core@^7.5.4", "@babel/core@^7.7.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== +"@babel/core@7.23.2", "@babel/core@^7.0.0", "@babel/core@^7.17.9", "@babel/core@^7.18.9", "@babel/core@^7.20.7", "@babel/core@^7.21.3", "@babel/core@^7.21.4", "@babel/core@^7.22.9", "@babel/core@^7.5.4": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.2.tgz#ed10df0d580fff67c5f3ee70fd22e2e4c90a9f94" + integrity sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" - convert-source-map "^1.7.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helpers" "^7.23.2" + "@babel/parser" "^7.23.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.2" + "@babel/types" "^7.23.0" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" + json5 "^2.2.3" semver "^6.3.1" "@babel/generator@7.17.9": @@ -885,12 +886,12 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.12.11", "@babel/generator@^7.15.4", "@babel/generator@^7.15.8", "@babel/generator@^7.22.7", "@babel/generator@^7.22.9", "@babel/generator@^7.5.0": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== +"@babel/generator@^7.15.4", "@babel/generator@^7.15.8", "@babel/generator@^7.23.0", "@babel/generator@^7.5.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.23.0" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -909,13 +910,13 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.22.9": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" browserslist "^4.21.9" lru-cache "^5.1.1" semver "^6.3.1" @@ -977,18 +978,18 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== +"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-function-name@^7.15.4", "@babel/helper-function-name@^7.18.6", "@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== +"@babel/helper-function-name@^7.15.4", "@babel/helper-function-name@^7.18.6", "@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" "@babel/helper-hoist-variables@^7.15.4", "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" @@ -1004,23 +1005,23 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== +"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" + integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-simple-access" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" @@ -1078,15 +1079,15 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== -"@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== +"@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.22.5": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.12.17", "@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@babel/helper-validator-option@^7.12.17", "@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== "@babel/helper-wrap-function@^7.22.9": version "7.22.9" @@ -1097,22 +1098,22 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== +"@babel/helpers@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" + integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.2" + "@babel/types" "^7.23.0" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.22.5", "@babel/highlight@^7.8.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== +"@babel/highlight@^7.10.4", "@babel/highlight@^7.22.13", "@babel/highlight@^7.8.3": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" js-tokens "^4.0.0" "@babel/parser@7.13.0": @@ -1125,10 +1126,10 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.6.tgz#043b9aa3c303c0722e5377fef9197f4cf1796549" integrity sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q== -"@babel/parser@7.22.7", "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8", "@babel/parser@^7.16.4", "@babel/parser@^7.16.5", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.6": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/parser@7.23.0", "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8", "@babel/parser@^7.16.4", "@babel/parser@^7.16.5", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.22.7", "@babel/parser@^7.23.0", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.6": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" @@ -2124,14 +2125,14 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.0.0", "@babel/template@^7.22.5", "@babel/template@^7.5.4": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== +"@babel/template@^7.0.0", "@babel/template@^7.22.15", "@babel/template@^7.22.5", "@babel/template@^7.5.4": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" "@babel/traverse@7.15.4": version "7.15.4" @@ -2148,19 +2149,19 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8", "@babel/traverse@^7.7.0": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" - integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.18.9", "@babel/traverse@^7.22.8", "@babel/traverse@^7.23.2", "@babel/traverse@^7.7.0": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" + integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/types" "^7.22.5" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" debug "^4.1.0" globals "^11.1.0" @@ -2180,13 +2181,13 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.13.0", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.17.0", "@babel/types@^7.18.6", "@babel/types@^7.2.0", "@babel/types@^7.21.3", "@babel/types@^7.22.5", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.0", "@babel/types@^7.6.1", "@babel/types@^7.7.0", "@babel/types@^7.9.6": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== +"@babel/types@^7.0.0", "@babel/types@^7.13.0", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.17.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.7", "@babel/types@^7.21.3", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.4.4", "@babel/types@^7.5.0", "@babel/types@^7.6.1", "@babel/types@^7.7.0", "@babel/types@^7.9.6": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== dependencies: "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" "@bahmutov/all-paths@1.0.2": @@ -6021,13 +6022,13 @@ resolved "https://registry.yarnpkg.com/@types/babel__code-frame/-/babel__code-frame-7.0.3.tgz#eda94e1b7c9326700a4b69c485ebbc9498a0b63f" integrity sha512-2TN6oiwtNjOezilFVl77zwdNPwQWaDBBCCWWxyo1ctiO3vAtd7H/aB/CBJdw9+kqq3+latD0SXoedIuHySSZWw== -"@types/babel__core@*", "@types/babel__core@^7.1.2": - version "7.1.19" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" - integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== +"@types/babel__core@*", "@types/babel__core@^7.1.2", "@types/babel__core@^7.18.0": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.2.tgz#215db4f4a35d710256579784a548907237728756" + integrity sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA== dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" "@types/babel__generator" "*" "@types/babel__template" "*" "@types/babel__traverse" "*" @@ -6047,12 +6048,12 @@ "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== +"@types/babel__traverse@*", "@types/babel__traverse@^7.18.0": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.2.tgz#4ddf99d95cfdd946ff35d2b65c978d9c9bf2645d" + integrity sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw== dependencies: - "@babel/types" "^7.3.0" + "@babel/types" "^7.20.7" "@types/better-sqlite3@^7.6.3": version "7.6.4" @@ -6243,6 +6244,11 @@ resolved "https://registry.yarnpkg.com/@types/detect-port/-/detect-port-1.3.1.tgz#a1af9bb9e8e43f5a2190f876cfd4120a5fae41ab" integrity sha512-evutJ8HynqPgm07LaG7nj7VqFqfAYpAjpKYYjhj5rlD5ukdF0hFiqHQo94Tu1FBJQkWDQPt3f1DaXLOGEL1nAw== +"@types/doctrine@^0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@types/doctrine/-/doctrine-0.0.6.tgz#12ede1f7cd3797be5856277c85f031299ccd2641" + integrity sha512-KlEqPtaNBHBJ2/fVA4yLdD0Tc8zw34pKU4K5SHBIEwtLJ8xxumIC1xeG+4S+/9qhVj2MqC7O3Ld8WvDG4HqlgA== + "@types/ejs@^3.1.2": version "3.1.2" resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.1.2.tgz#75d277b030bc11b3be38c807e10071f45ebc78d9" @@ -6806,6 +6812,11 @@ dependencies: "@types/node" "*" +"@types/resolve@^1.20.2": + version "1.20.3" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.3.tgz#066742d69a0bbba8c5d7d517f82e1140ddeb3c3c" + integrity sha512-NH5oErHOtHZYcjCtg69t26aXEk4BN2zLWqf7wnDZ+dpe0iR7Rds1SPGEItl3fca21oOe0n3OCnZ4W7jBxu7FOw== + "@types/responselike@*", "@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -9979,7 +9990,7 @@ bytes@3.1.2, bytes@^3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -c8@^7.10.0, c8@^7.6.0: +c8@^7.10.0: version "7.12.0" resolved "https://registry.yarnpkg.com/c8/-/c8-7.12.0.tgz#402db1c1af4af5249153535d1c84ad70c5c96b14" integrity sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A== @@ -10355,7 +10366,7 @@ chalk@1.x.x, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -11468,6 +11479,11 @@ convert-source-map@^1.1.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, dependencies: safe-buffer "~5.1.1" +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + cookie-parser@1.4.5: version "1.4.5" resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.5.tgz#3e572d4b7c0c80f9c61daf604e4336831b5d1d49" @@ -14101,15 +14117,6 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estree-to-babel@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/estree-to-babel/-/estree-to-babel-3.2.1.tgz#82e78315275c3ca74475fdc8ac1a5103c8a75bf5" - integrity sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg== - dependencies: - "@babel/traverse" "^7.1.6" - "@babel/types" "^7.2.0" - c8 "^7.6.0" - estree-walker@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" @@ -20547,7 +20554,7 @@ min-document@^2.19.0: dependencies: dom-walk "^0.1.0" -min-indent@^1.0.0: +min-indent@^1.0.0, min-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== @@ -21678,13 +21685,6 @@ node-api-version@^0.1.4: dependencies: semver "^7.3.5" -node-dir@^0.1.10: - version "0.1.17" - resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" - integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU= - dependencies: - minimatch "^3.0.2" - node-emoji@^1.11.0, node-emoji@^1.8.1: version "1.11.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" @@ -24659,21 +24659,21 @@ react-clientside-effect@^1.2.2: dependencies: "@babel/runtime" "^7.12.13" -react-docgen@6.0.0-alpha.3: - version "6.0.0-alpha.3" - resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-6.0.0-alpha.3.tgz#4d8a4916b45de4aadb90eb5f3a6f923edf447928" - integrity sha512-DDLvB5EV9As1/zoUsct6Iz2Cupw9FObEGD3DMcIs3EDFIoSKyz8FZtoWj3Wj+oodrU4/NfidN0BL5yrapIcTSA== - dependencies: - "@babel/core" "^7.7.5" - "@babel/generator" "^7.12.11" - ast-types "^0.14.2" - commander "^2.19.0" +react-docgen@6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-6.0.4.tgz#85eeebac5fdeb781dbf610fdc429c20a4f06131c" + integrity sha512-gF+p+1ZwC2eO66bt763Tepmh5q9kDiFIrqW3YjUV/a+L96h0m5+/wSFQoOHL2cffyrPMZMxP03IgbggJ11QbOw== + dependencies: + "@babel/core" "^7.18.9" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" + "@types/babel__core" "^7.18.0" + "@types/babel__traverse" "^7.18.0" + "@types/doctrine" "^0.0.6" + "@types/resolve" "^1.20.2" doctrine "^3.0.0" - estree-to-babel "^3.1.0" - neo-async "^2.6.1" - node-dir "^0.1.10" - resolve "^1.17.0" - strip-indent "^3.0.0" + resolve "^1.22.1" + strip-indent "^4.0.0" "react-dom-15.6.1@npm:react-dom@15.6.1": version "15.6.1" @@ -27700,6 +27700,13 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" +strip-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" + integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== + dependencies: + min-indent "^1.0.1" + strip-json-comments@2.0.1, strip-json-comments@^2.0.0, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" From fd2a27d62077f138b9bb8df5716e72b9f52be431 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 16 Oct 2023 17:13:16 -0400 Subject: [PATCH 11/47] chore: release create-cypress-tests-v2.0.4 [skip ci] --- npm/create-cypress-tests/CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/npm/create-cypress-tests/CHANGELOG.md b/npm/create-cypress-tests/CHANGELOG.md index 86aab50ae430..720d4a52aab4 100644 --- a/npm/create-cypress-tests/CHANGELOG.md +++ b/npm/create-cypress-tests/CHANGELOG.md @@ -1,3 +1,5 @@ +# [create-cypress-tests-v2.0.4](https://github.com/cypress-io/cypress/compare/create-cypress-tests-v2.0.3...create-cypress-tests-v2.0.4) (2023-10-16) + # [create-cypress-tests-v2.0.3](https://github.com/cypress-io/cypress/compare/create-cypress-tests-v2.0.2...create-cypress-tests-v2.0.3) (2023-09-07) # [create-cypress-tests-v2.0.2](https://github.com/cypress-io/cypress/compare/create-cypress-tests-v2.0.1...create-cypress-tests-v2.0.2) (2023-04-07) From ca6d30d7bf1811dda32c389bdb99aaeb975701c0 Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Tue, 17 Oct 2023 13:52:37 -0500 Subject: [PATCH 12/47] fix: force gzip when no accept encoding header is sent and use identity if gzip is not sent (#28026) Co-authored-by: Chris Breiding --- cli/CHANGELOG.md | 4 + packages/proxy/lib/http/request-middleware.ts | 8 +- .../test/integration/http_requests_spec.js | 160 ++++++++++++++++-- .../server/test/integration/server_spec.js | 7 +- 4 files changed, 159 insertions(+), 20 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 2e54397e4fef..d18c9525562d 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -3,6 +3,10 @@ _Released 10/25/2023 (PENDING)_ +**Bugfixes:** + +- Fixed an issue with Accept Encoding headers by forcing gzip when no accept encoding header is sent and using identity if gzip is not sent. Fixes [#28025](https://github.com/cypress-io/cypress/issues/28025). + **Dependency Updates:** - Upgraded [`@babel/core`](https://www.npmjs.com/package/@babel/core) from `7.22.9` to `7.23.2` to address the [SNYK-JS-SEMVER-3247795](https://snyk.io/vuln/SNYK-JS-SEMVER-3247795) security vulnerability. Upgraded [`@babel/traverse`](https://www.npmjs.com/package/@babel/traverse) from `7.22.8` to `7.23.2` to address the [SNYK-JS-BABELTRAVERSE-5962462](https://snyk.io/vuln/SNYK-JS-BABELTRAVERSE-5962462) security vulnerability. Upgraded [`react-docgen`](https://www.npmjs.com/package/react-docgen) from `6.0.0-alpha.3` to `6.0.4` to address the [SNYK-JS-BABELTRAVERSE-5962462](https://snyk.io/vuln/SNYK-JS-BABELTRAVERSE-5962462) security vulnerability. Addressed in [#28063](https://github.com/cypress-io/cypress/pull/28063). diff --git a/packages/proxy/lib/http/request-middleware.ts b/packages/proxy/lib/http/request-middleware.ts index 23b9798639a7..d8ccd58b2fc4 100644 --- a/packages/proxy/lib/http/request-middleware.ts +++ b/packages/proxy/lib/http/request-middleware.ts @@ -348,7 +348,7 @@ const EndRequestsToBlockedHosts: RequestMiddleware = function () { const StripUnsupportedAcceptEncoding: RequestMiddleware = function () { const span = telemetry.startSpan({ name: 'strip:unsupported:accept:encoding', parentSpan: this.reqMiddlewareSpan, isVerbose }) - // Cypress can only support plaintext or gzip, so make sure we don't request anything else + // Cypress can only support plaintext or gzip, so make sure we don't request anything else, by either filtering down to `gzip` or explicitly specifying `identity` const acceptEncoding = this.req.headers['accept-encoding'] span?.setAttributes({ @@ -365,8 +365,12 @@ const StripUnsupportedAcceptEncoding: RequestMiddleware = function () { if (doesAcceptHeadingIncludeGzip) { this.req.headers['accept-encoding'] = 'gzip' } else { - delete this.req.headers['accept-encoding'] + this.req.headers['accept-encoding'] = 'identity' } + } else { + // If there is no accept-encoding header, it means to accept everything (https://www.rfc-editor.org/rfc/rfc9110#name-accept-encoding). + // In that case, we want to explicitly filter that down to `gzip` and identity + this.req.headers['accept-encoding'] = 'gzip,identity' } span?.end() diff --git a/packages/server/test/integration/http_requests_spec.js b/packages/server/test/integration/http_requests_spec.js index 5777514dd11e..921ed2097edc 100644 --- a/packages/server/test/integration/http_requests_spec.js +++ b/packages/server/test/integration/http_requests_spec.js @@ -257,6 +257,7 @@ describe('Routes', () => { url: 'http://www.github.com/', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -294,6 +295,7 @@ describe('Routes', () => { url: 'https://localhost:8443/', headers: { 'Accept': 'text/html, application/xhtml+xml, */*', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -970,6 +972,7 @@ describe('Routes', () => { url: 'http://www.github.com/', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -1138,11 +1141,10 @@ describe('Routes', () => { }) }) - it('removes accept-encoding when nothing is supported', function () { - nock(this.server.remoteStates.current().origin, { - badheaders: ['accept-encoding'], - }) + it('sets accept-encoding header to "identity" when nothing is supported', function () { + nock(this.server.remoteStates.current().origin) .get('/accept') + .matchHeader('accept-encoding', 'identity') .reply(200, 'accept') return this.rp({ @@ -1158,6 +1160,22 @@ describe('Routes', () => { expect(res.body).to.eq('accept') }) }) + + it('sets accept-encoding header to "gzip,identity" when no header is passed', function () { + nock(this.server.remoteStates.current().origin) + .get('/accept') + .matchHeader('accept-encoding', 'gzip,identity') + .reply(200, 'accept') + + return this.rp({ + url: 'http://www.github.com/accept', + }) + .then((res) => { + expect(res.statusCode).to.eq(200) + + expect(res.body).to.eq('accept') + }) + }) }) context('304 Not Modified', () => { @@ -1350,6 +1368,7 @@ describe('Routes', () => { url: 'http://www.github.com/index.html', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -1432,7 +1451,12 @@ describe('Routes', () => { }, }) .then(() => { - return this.rp(`${this.proxy}/foo/views/test/index.html`) + return this.rp({ + url: `${this.proxy}/foo/views/test/index.html`, + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(404) expect(res.body).to.include('Cypress errored trying to serve this file from your system:') @@ -1459,7 +1483,12 @@ describe('Routes', () => { 'Content-Type': 'text/html', }) - return this.rp('http://www.github.com/index.html') + return this.rp({ + url: 'http://www.github.com/index.html', + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(500) @@ -1568,6 +1597,7 @@ describe('Routes', () => { url: 'http://localhost:8080/login', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -1591,6 +1621,7 @@ describe('Routes', () => { url: 'http://localhost:8080/login', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -1730,6 +1761,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=true', 'x-custom': 'value', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -1891,6 +1923,7 @@ describe('Routes', () => { 'Cookie': '__cypress.initial=false', 'Origin': 'http://localhost:8080', 'Accept': 'text/html, application/xhtml+xml, */*', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -1908,7 +1941,12 @@ describe('Routes', () => { .then(() => { this.server.onRequest(fn) - return this.rp(url) + return this.rp({ + url, + headers: { + 'Accept-Encoding': 'identity', + }, + }) }).then((res) => { expect(res.statusCode).to.eq(200) @@ -2536,6 +2574,7 @@ describe('Routes', () => { url: 'http://www.cypress.io/bar', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) const body = cleanResponseBody(res.body) @@ -2558,6 +2597,7 @@ describe('Routes', () => { url: 'http://www.cypress.io/bar', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) const body = cleanResponseBody(res.body) @@ -2577,6 +2617,7 @@ describe('Routes', () => { url: 'http://www.cypress.io/bar', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2597,6 +2638,7 @@ describe('Routes', () => { url: 'http://www.cypress.io/bar', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2619,6 +2661,7 @@ describe('Routes', () => { url: 'http://www.cypress.io/bar', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2639,6 +2682,7 @@ describe('Routes', () => { url: 'http://www.cypress.io/bar', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2661,6 +2705,7 @@ describe('Routes', () => { url: 'http://www.cypress.io/bar', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2683,6 +2728,7 @@ describe('Routes', () => { url: 'http://www.cypress.io/bar', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2704,6 +2750,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=false', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2731,6 +2778,7 @@ describe('Routes', () => { url: 'http://www.cypress.io/bar', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2738,7 +2786,12 @@ describe('Routes', () => { expect(res.headers['location']).to.eq('http://www.cypress.io/foo') expect(res.headers['set-cookie']).to.match(/initial=true/) - return this.rp(res.headers['location']) + return this.rp({ + url: res.headers['location'], + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(200) expect(res.headers['set-cookie']).to.match(/initial=;/) @@ -2762,6 +2815,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=true', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2782,6 +2836,7 @@ describe('Routes', () => { url: `${this.proxy}/elements.html`, headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2803,6 +2858,7 @@ describe('Routes', () => { url: 'http://www.cypress.io/bar', headers: { 'Cookie': '__cypress.initial=false', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2821,6 +2877,7 @@ describe('Routes', () => { url: 'https://localhost:8443/', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) const body = cleanResponseBody(res.body) @@ -2844,6 +2901,7 @@ describe('Routes', () => { url: 'https://www.google.com/', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2869,6 +2927,7 @@ describe('Routes', () => { url: 'https://www.cypress.io/', headers: { 'Accept': 'text/html, application/xhtml+xml, */*', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2889,6 +2948,7 @@ describe('Routes', () => { url: 'https://www.foobar.com:8443/index.html', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) const body = cleanResponseBody(res.body) @@ -2907,6 +2967,7 @@ describe('Routes', () => { url: 'https://docs.foobar.com:8443/index.html', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) const body = cleanResponseBody(res.body) @@ -2925,6 +2986,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=false', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2949,6 +3011,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=false', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2972,6 +3035,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=false', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -2996,6 +3060,7 @@ describe('Routes', () => { 'Cookie': '__cypress.initial=false', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'X-Cypress-Is-AUT-Frame': 'true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3019,6 +3084,7 @@ describe('Routes', () => { json: true, headers: { 'Cookie': '__cypress.initial=false', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3040,6 +3106,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=false', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3059,6 +3126,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=true', 'Accept': 'application/json', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3082,6 +3150,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=false', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', 'X-Requested-With': 'XMLHttpRequest', }, }) @@ -3104,6 +3173,7 @@ describe('Routes', () => { const headers = { 'Cookie': '__cypress.initial=false', + 'Accept-Encoding': 'identity', } headers['Accept'] = type @@ -3140,6 +3210,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=false', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3165,12 +3236,14 @@ describe('Routes', () => { .get('/index.html') .reply(200, html, { 'Content-Type': 'text/html', + 'Accept-Encoding': 'identity', }) return this.rp({ url: 'http://www.google.com/index.html', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3189,7 +3262,12 @@ describe('Routes', () => { 'Content-Type': 'application/javascript', }) - return this.rp('http://www.google.com/app.js') + return this.rp({ + url: 'http://www.google.com/app.js', + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(200) @@ -3400,6 +3478,7 @@ describe('Routes', () => { url: 'http://www.google.com/index.html', headers: { 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3418,7 +3497,12 @@ describe('Routes', () => { 'Content-Type': 'application/javascript', }) - return this.rp('http://www.google.com/app.js') + return this.rp({ + url: 'http://www.google.com/app.js', + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(200) @@ -3447,6 +3531,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=true', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3472,6 +3557,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=false', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3504,6 +3590,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=true', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3521,7 +3608,12 @@ describe('Routes', () => { }) it('sets etag', function () { - return this.rp(`${this.proxy}/assets/app.css`) + return this.rp({ + url: `${this.proxy}/assets/app.css`, + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(200) expect(res.body).to.eq('html { color: black; }') @@ -3538,7 +3630,12 @@ describe('Routes', () => { }) it('streams from file system', function () { - return this.rp(`${this.proxy}/assets/app.css`) + return this.rp({ + url: `${this.proxy}/assets/app.css`, + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(200) @@ -3556,7 +3653,12 @@ describe('Routes', () => { }) it('disregards anything past the pathname', function () { - return this.rp(`${this.proxy}/assets/app.css?foo=bar#hash`) + return this.rp({ + url: `${this.proxy}/assets/app.css?foo=bar#hash`, + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(200) @@ -3565,7 +3667,12 @@ describe('Routes', () => { }) it('can serve files with spaces in the path', function () { - return this.rp(`${this.proxy}/a space/foo.txt`) + return this.rp({ + url: `${this.proxy}/a space/foo.txt`, + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(200) @@ -3595,6 +3702,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=false', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3610,6 +3718,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=false', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3640,6 +3749,7 @@ describe('Routes', () => { json: true, headers: { 'Cookie': '__cypress.initial=false', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3655,6 +3765,7 @@ describe('Routes', () => { headers: { 'Cookie': '__cypress.initial=true', 'Accept': 'application/json', + 'Accept-Encoding': 'identity', }, }) .then((res) => { @@ -3691,7 +3802,12 @@ describe('Routes', () => { 'Content-Type': 'text/css', }) - return this.rp('http://getbootstrap.com/assets/css/application.css') + return this.rp({ + url: 'http://getbootstrap.com/assets/css/application.css', + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(200) @@ -3712,7 +3828,12 @@ describe('Routes', () => { 'Content-Type': 'text/html', }) - return this.rp('http://getbootstrap.com/css') + return this.rp({ + url: 'http://getbootstrap.com/css', + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(200) }) @@ -3726,7 +3847,12 @@ describe('Routes', () => { 'Content-Type': 'text/css', }) - return this.rp('http://getbootstrap.com/assets/css/application.css') + return this.rp({ + url: 'http://getbootstrap.com/assets/css/application.css', + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(200) diff --git a/packages/server/test/integration/server_spec.js b/packages/server/test/integration/server_spec.js index 8ffa7095448b..a6b5dbeb836f 100644 --- a/packages/server/test/integration/server_spec.js +++ b/packages/server/test/integration/server_spec.js @@ -292,7 +292,12 @@ describe('Server', () => { cookies: [], }) }).then(() => { - return this.rp('http://localhost:2000/does-not-exist') + return this.rp({ + url: 'http://localhost:2000/does-not-exist', + headers: { + 'Accept-Encoding': 'identity', + }, + }) .then((res) => { expect(res.statusCode).to.eq(404) expect(res.body).to.include('Cypress errored trying to serve this file from your system:') From a96b9b1f53bf35433f6cfa1f150221499f151152 Mon Sep 17 00:00:00 2001 From: Adam Stone-Lord Date: Tue, 17 Oct 2023 18:05:36 -0400 Subject: [PATCH 13/47] chore: remove Cypress Conf promo from README (#28076) This reverts commit e0065e2ec5186d3141aaee018ad3e97578bed3f5. --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index aeaf893644ae..9867193933f2 100644 --- a/README.md +++ b/README.md @@ -20,11 +20,6 @@

Fast, easy and reliable testing for anything that runs in a browser.

-

- - Cypress Conf Link - -

Join us, we're hiring.

From ff89ffa2b2ef36d02bff0588bb0582cfa8a6002d Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Tue, 17 Oct 2023 19:53:49 -0500 Subject: [PATCH 14/47] fix: proxy issues with service workers and clean up at end of specs (#28060) --- cli/CHANGELOG.md | 3 + packages/proxy/lib/http/index.ts | 9 ++ packages/proxy/lib/http/request-middleware.ts | 3 +- .../proxy/lib/http/response-middleware.ts | 5 + packages/proxy/lib/http/util/prerequests.ts | 91 +++++++++++++++--- packages/proxy/lib/network-proxy.ts | 4 + packages/proxy/lib/types.ts | 1 + .../test/unit/http/util/prerequests.spec.ts | 94 +++++++++++++------ .../server/lib/browsers/browser-cri-client.ts | 19 +++- packages/server/lib/browsers/cri-client.ts | 50 ++++++++-- packages/server/lib/browsers/electron.ts | 5 +- packages/server/lib/project-base.ts | 6 ++ packages/server/lib/server-base.ts | 4 + packages/server/test/integration/cdp_spec.ts | 32 +++---- .../server/test/integration/cypress_spec.js | 2 + .../unit/browsers/browser-cri-client_spec.ts | 21 +++-- .../test/unit/browsers/cri-client_spec.ts | 2 +- .../test/unit/browsers/electron_spec.js | 8 ++ system-tests/projects/e2e/browser_reset.html | 12 +++ .../e2e/browser_reset_first_spec.cy.js | 27 +++++- .../e2e/browser_reset_second_spec.cy.js | 22 ++++- .../e2e/cypress/e2e/service_worker.cy.js | 18 ++++ system-tests/projects/e2e/service-worker.js | 28 ++++++ system-tests/projects/e2e/service_worker.html | 13 +++ system-tests/test/browser_reset_spec.js | 17 +++- system-tests/test/service_worker_spec.js | 57 +++++++++++ 26 files changed, 466 insertions(+), 87 deletions(-) create mode 100644 system-tests/projects/e2e/browser_reset.html create mode 100644 system-tests/projects/e2e/cypress/e2e/service_worker.cy.js create mode 100644 system-tests/projects/e2e/service-worker.js create mode 100644 system-tests/projects/e2e/service_worker.html create mode 100644 system-tests/test/service_worker_spec.js diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index d18c9525562d..00577e909d58 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -5,6 +5,9 @@ _Released 10/25/2023 (PENDING)_ **Bugfixes:** +- Fixed a performance regression in `13.3.1` with proxy correlation timeouts and requests issued from service workers. Fixes [#28054](https://github.com/cypress-io/cypress/issues/28054) and [#28056](https://github.com/cypress-io/cypress/issues/28056). +- Fixed an issue where proxy correlation would leak over from a previous spec causing performance problems, `cy.intercept` problems, and Test Replay asset capturing issues. Addressed in [#28060](https://github.com/cypress-io/cypress/pull/28060). +- Fixed an issue where redirects of requests that knowingly don't have CDP traffic should also be assumed to not have CDP traffic. Addressed in [#28060](https://github.com/cypress-io/cypress/pull/28060). - Fixed an issue with Accept Encoding headers by forcing gzip when no accept encoding header is sent and using identity if gzip is not sent. Fixes [#28025](https://github.com/cypress-io/cypress/issues/28025). **Dependency Updates:** diff --git a/packages/proxy/lib/http/index.ts b/packages/proxy/lib/http/index.ts index 433881759c05..3ccb9e80afbf 100644 --- a/packages/proxy/lib/http/index.ts +++ b/packages/proxy/lib/http/index.ts @@ -66,6 +66,7 @@ type HttpMiddlewareCtx = { getCookieJar: () => CookieJar deferSourceMapRewrite: (opts: { js: string, url: string }) => string getPreRequest: (cb: GetPreRequestCb) => void + addPendingUrlWithoutPreRequest: (url: string) => void getAUTUrl: Http['getAUTUrl'] setAUTUrl: Http['setAUTUrl'] simulatedCookies: SerializableAutomationCookie[] @@ -326,6 +327,9 @@ export class Http { getPreRequest: (cb) => { this.preRequests.get(ctx.req, ctx.debug, cb) }, + addPendingUrlWithoutPreRequest: (url) => { + this.preRequests.addPendingUrlWithoutPreRequest(url) + }, protocolManager: this.protocolManager, } @@ -411,6 +415,7 @@ export class Http { reset () { this.buffers.reset() this.setAUTUrl(undefined) + this.preRequests.reset() } setBuffer (buffer) { @@ -433,4 +438,8 @@ export class Http { this.protocolManager = protocolManager this.preRequests.setProtocolManager(protocolManager) } + + setPreRequestTimeout (timeout: number) { + this.preRequests.setPreRequestTimeout(timeout) + } } diff --git a/packages/proxy/lib/http/request-middleware.ts b/packages/proxy/lib/http/request-middleware.ts index d8ccd58b2fc4..04391b5fadfe 100644 --- a/packages/proxy/lib/http/request-middleware.ts +++ b/packages/proxy/lib/http/request-middleware.ts @@ -128,8 +128,9 @@ const CorrelateBrowserPreRequest: RequestMiddleware = async function () { } this.debug('waiting for prerequest') - this.getPreRequest(((browserPreRequest) => { + this.getPreRequest((({ browserPreRequest, noPreRequestExpected }) => { this.req.browserPreRequest = browserPreRequest + this.req.noPreRequestExpected = noPreRequestExpected copyResourceTypeAndNext() })) } diff --git a/packages/proxy/lib/http/response-middleware.ts b/packages/proxy/lib/http/response-middleware.ts index c1e534ceaa14..ef6d57e44ef2 100644 --- a/packages/proxy/lib/http/response-middleware.ts +++ b/packages/proxy/lib/http/response-middleware.ts @@ -656,6 +656,11 @@ const MaybeSendRedirectToClient: ResponseMiddleware = function () { return this.next() } + // If we're redirecting from a request that doesn't expect to have a preRequest (e.g. download links), we need to treat the redirected url as such as well. + if (this.req.noPreRequestExpected) { + this.addPendingUrlWithoutPreRequest(newUrl) + } + setInitialCookie(this.res, this.remoteStates.current(), true) this.debug('redirecting to new url %o', { statusCode, newUrl }) diff --git a/packages/proxy/lib/http/util/prerequests.ts b/packages/proxy/lib/http/util/prerequests.ts index ee2dc2cf3e1a..9759828af211 100644 --- a/packages/proxy/lib/http/util/prerequests.ts +++ b/packages/proxy/lib/http/util/prerequests.ts @@ -21,11 +21,16 @@ process.once('exit', () => { debug('metrics: %o', metrics) }) -export type GetPreRequestCb = (browserPreRequest?: BrowserPreRequestWithTimings) => void +export type CorrelationInformation = { + browserPreRequest?: BrowserPreRequestWithTimings + noPreRequestExpected?: boolean +} + +export type GetPreRequestCb = (correlationInformation: CorrelationInformation) => void type PendingRequest = { ctxDebug - callback: GetPreRequestCb + callback?: GetPreRequestCb timeout: NodeJS.Timeout timedOut?: boolean proxyRequestReceivedTimestamp: number @@ -74,6 +79,13 @@ class QueueMap { this.queues[queueKey].splice(i, 1) if (this.queues[queueKey].length === 0) delete this.queues[queueKey] } + + forEach (fn: (value: T) => void) { + Object.values(this.queues).forEach((queue) => { + queue.forEach(fn) + }) + } + get length () { return Object.values(this.queues).reduce((prev, cur) => prev + cur.length, 0) } @@ -148,11 +160,16 @@ export class PreRequests { debugVerbose('Incoming pre-request %s matches pending request. %o', key, browserPreRequest) if (!pendingRequest.timedOut) { clearTimeout(pendingRequest.timeout) - pendingRequest.callback({ - ...browserPreRequest, - ...timings, + pendingRequest.callback?.({ + browserPreRequest: { + ...browserPreRequest, + ...timings, + }, + noPreRequestExpected: false, }) + delete pendingRequest.callback + return } @@ -179,7 +196,11 @@ export class PreRequests { if (pendingRequest) { debugVerbose('Handling %s without a CDP prerequest', key) clearTimeout(pendingRequest.timeout) - pendingRequest.callback() + pendingRequest.callback?.({ + noPreRequestExpected: true, + }) + + delete pendingRequest.callback return } @@ -196,6 +217,19 @@ export class PreRequests { } get (req: CypressIncomingRequest, ctxDebug, callback: GetPreRequestCb) { + // The initial request that loads the service worker does not get sent to CDP and it happens prior + // to the service worker target being added. Thus, we need to explicitly ignore it. We determine + // it's the service worker request via the `sec-fetch-dest` header + if (req.headers['sec-fetch-dest'] === 'serviceworker') { + ctxDebug('Ignoring request with sec-fetch-dest: serviceworker', req.proxiedUrl) + + callback({ + noPreRequestExpected: true, + }) + + return + } + const proxyRequestReceivedTimestamp = performance.now() + performance.timeOrigin metrics.proxyRequestsReceived++ @@ -206,12 +240,15 @@ export class PreRequests { metrics.immediatelyMatchedRequests++ ctxDebug('Incoming request %s matches known pre-request: %o', key, pendingPreRequest) callback({ - ...pendingPreRequest.browserPreRequest, - cdpRequestWillBeSentTimestamp: pendingPreRequest.cdpRequestWillBeSentTimestamp, - cdpRequestWillBeSentReceivedTimestamp: pendingPreRequest.cdpRequestWillBeSentReceivedTimestamp, - proxyRequestReceivedTimestamp, - cdpLagDuration: pendingPreRequest.cdpRequestWillBeSentReceivedTimestamp - pendingPreRequest.cdpRequestWillBeSentTimestamp, - proxyRequestCorrelationDuration: Math.max(pendingPreRequest.cdpRequestWillBeSentReceivedTimestamp - proxyRequestReceivedTimestamp, 0), + browserPreRequest: { + ...pendingPreRequest.browserPreRequest, + cdpRequestWillBeSentTimestamp: pendingPreRequest.cdpRequestWillBeSentTimestamp, + cdpRequestWillBeSentReceivedTimestamp: pendingPreRequest.cdpRequestWillBeSentReceivedTimestamp, + proxyRequestReceivedTimestamp, + cdpLagDuration: pendingPreRequest.cdpRequestWillBeSentReceivedTimestamp - pendingPreRequest.cdpRequestWillBeSentTimestamp, + proxyRequestCorrelationDuration: Math.max(pendingPreRequest.cdpRequestWillBeSentReceivedTimestamp - proxyRequestReceivedTimestamp, 0), + }, + noPreRequestExpected: false, }) return @@ -222,7 +259,9 @@ export class PreRequests { if (pendingUrlWithoutPreRequests) { metrics.immediatelyMatchedRequests++ ctxDebug('Incoming request %s matches known pending url without pre request', key) - callback() + callback({ + noPreRequestExpected: true, + }) return } @@ -235,7 +274,11 @@ export class PreRequests { ctxDebug('Never received pre-request or url without pre-request for request %s after waiting %sms. Continuing without one.', key, this.requestTimeout) metrics.unmatchedRequests++ pendingRequest.timedOut = true - callback() + callback({ + noPreRequestExpected: false, + }) + + delete pendingRequest.callback }, this.requestTimeout), } @@ -245,4 +288,24 @@ export class PreRequests { setProtocolManager (protocolManager: ProtocolManagerShape) { this.protocolManager = protocolManager } + + setPreRequestTimeout (requestTimeout: number) { + this.requestTimeout = requestTimeout + } + + reset () { + this.pendingPreRequests = new QueueMap() + + // Clear out the pending requests timeout callbacks first then clear the queue + this.pendingRequests.forEach(({ callback, timeout }) => { + clearTimeout(timeout) + metrics.unmatchedRequests++ + callback?.({ + noPreRequestExpected: false, + }) + }) + + this.pendingRequests = new QueueMap() + this.pendingUrlsWithoutPreRequests = new QueueMap() + } } diff --git a/packages/proxy/lib/network-proxy.ts b/packages/proxy/lib/network-proxy.ts index 2702b059a1f7..a3c4996450ad 100644 --- a/packages/proxy/lib/network-proxy.ts +++ b/packages/proxy/lib/network-proxy.ts @@ -53,4 +53,8 @@ export class NetworkProxy { setProtocolManager (protocolManager) { this.http.setProtocolManager(protocolManager) } + + setPreRequestTimeout (timeout) { + this.http.setPreRequestTimeout(timeout) + } } diff --git a/packages/proxy/lib/types.ts b/packages/proxy/lib/types.ts index 94f73165441a..d27fa2b7f798 100644 --- a/packages/proxy/lib/types.ts +++ b/packages/proxy/lib/types.ts @@ -12,6 +12,7 @@ export type CypressIncomingRequest = Request & { abort: () => void requestId: string browserPreRequest?: BrowserPreRequestWithTimings + noPreRequestExpected?: boolean body?: string responseTimeout?: number followRedirect?: boolean diff --git a/packages/proxy/test/unit/http/util/prerequests.spec.ts b/packages/proxy/test/unit/http/util/prerequests.spec.ts index 309727358fe4..f607a823ee0b 100644 --- a/packages/proxy/test/unit/http/util/prerequests.spec.ts +++ b/packages/proxy/test/unit/http/util/prerequests.spec.ts @@ -1,4 +1,4 @@ -import { PreRequests } from '@packages/proxy/lib/http/util/prerequests' +import { CorrelationInformation, PreRequests } from '@packages/proxy/lib/http/util/prerequests' import { BrowserPreRequest, CypressIncomingRequest } from '@packages/proxy' import { expect } from 'chai' import sinon from 'sinon' @@ -68,22 +68,25 @@ describe('http/util/prerequests', () => { const cb = sinon.stub() - preRequests.get({ proxiedUrl: 'foo', method: 'GET' } as CypressIncomingRequest, () => {}, cb) + preRequests.get({ proxiedUrl: 'foo', method: 'GET', headers: {} } as CypressIncomingRequest, () => {}, cb) const { args } = cb.getCall(0) - const arg = args[0] - - expect(arg.requestId).to.eq(secondPreRequest.requestId) - expect(arg.url).to.eq(secondPreRequest.url) - expect(arg.method).to.eq(secondPreRequest.method) - expect(arg.headers).to.deep.eq(secondPreRequest.headers) - expect(arg.resourceType).to.eq(secondPreRequest.resourceType) - expect(arg.originalResourceType).to.eq(secondPreRequest.originalResourceType) - expect(arg.cdpRequestWillBeSentTimestamp).to.eq(secondPreRequest.cdpRequestWillBeSentTimestamp) - expect(arg.cdpRequestWillBeSentReceivedTimestamp).to.eq(secondPreRequest.cdpRequestWillBeSentReceivedTimestamp) - expect(arg.proxyRequestReceivedTimestamp).to.be.a('number') - expect(arg.cdpLagDuration).to.eq(secondPreRequest.cdpRequestWillBeSentReceivedTimestamp - secondPreRequest.cdpRequestWillBeSentTimestamp) - expect(arg.proxyRequestCorrelationDuration).to.eq(secondPreRequest.cdpRequestWillBeSentReceivedTimestamp - arg.proxyRequestReceivedTimestamp) + const browserPreRequest = args[0].browserPreRequest + const noPreRequestExpected = args[0].noPreRequestExpected + + expect(browserPreRequest.requestId).to.eq(secondPreRequest.requestId) + expect(browserPreRequest.url).to.eq(secondPreRequest.url) + expect(browserPreRequest.method).to.eq(secondPreRequest.method) + expect(browserPreRequest.headers).to.deep.eq(secondPreRequest.headers) + expect(browserPreRequest.resourceType).to.eq(secondPreRequest.resourceType) + expect(browserPreRequest.originalResourceType).to.eq(secondPreRequest.originalResourceType) + expect(browserPreRequest.cdpRequestWillBeSentTimestamp).to.eq(secondPreRequest.cdpRequestWillBeSentTimestamp) + expect(browserPreRequest.cdpRequestWillBeSentReceivedTimestamp).to.eq(secondPreRequest.cdpRequestWillBeSentReceivedTimestamp) + expect(browserPreRequest.proxyRequestReceivedTimestamp).to.be.a('number') + expect(browserPreRequest.cdpLagDuration).to.eq(secondPreRequest.cdpRequestWillBeSentReceivedTimestamp - secondPreRequest.cdpRequestWillBeSentTimestamp) + expect(browserPreRequest.proxyRequestCorrelationDuration).to.eq(secondPreRequest.cdpRequestWillBeSentReceivedTimestamp - browserPreRequest.proxyRequestReceivedTimestamp) + + expect(noPreRequestExpected).to.be.false expectPendingCounts(0, 2) }) @@ -98,43 +101,47 @@ describe('http/util/prerequests', () => { const cb = sinon.stub() - preRequests.get({ proxiedUrl: 'foo', method: 'GET' } as CypressIncomingRequest, () => {}, cb) + preRequests.get({ proxiedUrl: 'foo', method: 'GET', headers: {} } as CypressIncomingRequest, () => {}, cb) const { args } = cb.getCall(0) const arg = args[0] - expect(arg).to.be.undefined + expect(arg.preRequest).to.be.undefined + expect(arg.noPreRequestExpected).to.be.true expectPendingCounts(0, 0, 2) }) it('synchronously matches a pre-request added after the request', (done) => { - const cb = (preRequest) => { - expect(preRequest).to.include({ requestId: '1234', url: 'foo', method: 'GET' }) + const cb = ({ browserPreRequest, noPreRequestExpected }: CorrelationInformation) => { + expect(browserPreRequest).to.include({ requestId: '1234', url: 'foo', method: 'GET' }) + expect(noPreRequestExpected).to.be.false expectPendingCounts(0, 0) done() } - preRequests.get({ proxiedUrl: 'foo', method: 'GET' } as CypressIncomingRequest, () => {}, cb) + preRequests.get({ proxiedUrl: 'foo', method: 'GET', headers: {} } as CypressIncomingRequest, () => {}, cb) preRequests.addPending({ requestId: '1234', url: 'foo', method: 'GET' } as BrowserPreRequest) }) it('synchronously matches a request without a pre-request added after the request', (done) => { - const cb = (preRequest) => { - expect(preRequest).to.be.undefined + const cb = ({ browserPreRequest, noPreRequestExpected }: CorrelationInformation) => { + expect(browserPreRequest).to.be.undefined + expect(noPreRequestExpected).to.be.true expectPendingCounts(0, 0) done() } - preRequests.get({ proxiedUrl: 'foo', method: 'GET' } as CypressIncomingRequest, () => {}, cb) + preRequests.get({ proxiedUrl: 'foo', method: 'GET', headers: {} } as CypressIncomingRequest, () => {}, cb) preRequests.addPendingUrlWithoutPreRequest('foo') }) it('invokes a request callback after a timeout if no pre-request occurs', async () => { let cb const cbPromise = new Promise((resolve) => { - cb = (preRequest) => { - expect(preRequest).to.be.undefined + cb = ({ browserPreRequest, noPreRequestExpected }: CorrelationInformation) => { + expect(browserPreRequest).to.be.undefined + expect(noPreRequestExpected).to.be.false // we should have keep the pending request to eventually be correlated later, but don't block the body in the meantime expectPendingCounts(1, 0) @@ -143,7 +150,7 @@ describe('http/util/prerequests', () => { } }) - preRequests.get({ proxiedUrl: 'foo', method: 'GET' } as CypressIncomingRequest, () => {}, cb) + preRequests.get({ proxiedUrl: 'foo', method: 'GET', headers: {} } as CypressIncomingRequest, () => {}, cb) await cbPromise @@ -182,13 +189,14 @@ describe('http/util/prerequests', () => { // 2 * requestTimeout. We verify that it's gone (and therefore not leaking memory) by sending in a request // and assuring that the pre-request wasn't there to be matched anymore. setTimeout(() => { - const cb = (preRequest) => { - expect(preRequest).to.be.undefined + const cb = ({ browserPreRequest, noPreRequestExpected }: CorrelationInformation) => { + expect(browserPreRequest).to.be.undefined + expect(noPreRequestExpected).to.be.false expectPendingCounts(1, 0, 0) done() } - preRequests.get({ proxiedUrl: 'foo', method: 'GET' } as CypressIncomingRequest, () => {}, cb) + preRequests.get({ proxiedUrl: 'foo', method: 'GET', headers: {} } as CypressIncomingRequest, () => {}, cb) }, 1200) }) @@ -218,4 +226,32 @@ describe('http/util/prerequests', () => { expectPendingCounts(0, 2) }) + + it('immediately handles a request from a service worker loading', () => { + const cbServiceWorker = sinon.stub() + + preRequests.get({ proxiedUrl: 'foo', method: 'GET', headers: { 'sec-fetch-dest': 'serviceworker' } } as any, () => {}, cbServiceWorker) + + expect(cbServiceWorker).to.be.calledOnce + expect(cbServiceWorker).to.be.calledWith() + }) + + it('resets the queues', () => { + let callbackCalled = false + + preRequests.addPending({ requestId: '1234', url: 'bar', method: 'GET' } as BrowserPreRequest) + preRequests.get({ proxiedUrl: 'foo', method: 'GET', headers: {} } as CypressIncomingRequest, () => {}, () => { + callbackCalled = true + }) + + preRequests.addPendingUrlWithoutPreRequest('baz') + + expectPendingCounts(1, 1, 1) + + preRequests.reset() + + expectPendingCounts(0, 0, 0) + + expect(callbackCalled).to.be.true + }) }) diff --git a/packages/server/lib/browsers/browser-cri-client.ts b/packages/server/lib/browsers/browser-cri-client.ts index 4d6d536731a6..a084f2bd0cab 100644 --- a/packages/server/lib/browsers/browser-cri-client.ts +++ b/packages/server/lib/browsers/browser-cri-client.ts @@ -145,13 +145,18 @@ export class BrowserCriClient { return retryWithIncreasingDelay(async () => { const versionInfo = await CRI.Version({ host, port, useHostName: true }) - const browserClient = await create(versionInfo.webSocketDebuggerUrl, onAsynchronousError, undefined, undefined, onReconnect) + + const browserClient = await create({ + target: versionInfo.webSocketDebuggerUrl, + onAsynchronousError, + onReconnect, + protocolManager, + }) const browserCriClient = new BrowserCriClient(browserClient, versionInfo, host!, port, browserName, onAsynchronousError, protocolManager) if (fullyManageTabs) { await browserClient.send('Target.setDiscoverTargets', { discover: true }) - browserClient.on('Target.targetDestroyed', (event) => { debug('Target.targetDestroyed %o', { event, @@ -265,7 +270,7 @@ export class BrowserCriClient { throw new Error(`Could not find url target in browser ${url}. Targets were ${JSON.stringify(targets)}`) } - this.currentlyAttachedTarget = await create(target.targetId, this.onAsynchronousError, this.host, this.port) + this.currentlyAttachedTarget = await create({ target: target.targetId, onAsynchronousError: this.onAsynchronousError, host: this.host, port: this.port, protocolManager: this.protocolManager }) await this.protocolManager?.connectToBrowser(this.currentlyAttachedTarget) return this.currentlyAttachedTarget @@ -312,7 +317,13 @@ export class BrowserCriClient { } if (target) { - this.currentlyAttachedTarget = await create(target.targetId, this.onAsynchronousError, this.host, this.port) + this.currentlyAttachedTarget = await create({ + target: target.targetId, + onAsynchronousError: this.onAsynchronousError, + host: this.host, + port: this.port, + protocolManager: this.protocolManager, + }) } else { this.currentlyAttachedTarget = undefined } diff --git a/packages/server/lib/browsers/cri-client.ts b/packages/server/lib/browsers/cri-client.ts index 8961b07e998d..2b983b3b05fd 100644 --- a/packages/server/lib/browsers/cri-client.ts +++ b/packages/server/lib/browsers/cri-client.ts @@ -8,6 +8,7 @@ import type WebSocket from 'ws' import type CDP from 'chrome-remote-interface' import type { SendDebuggerCommand, OnFn, CdpCommand, CdpEvent } from './cdp_automation' +import type { ProtocolManagerShape } from '@packages/types' const debug = debugModule('cypress:server:browsers:cri-client') // debug using cypress-verbose:server:browsers:cri-client:send:* @@ -130,14 +131,23 @@ const maybeDebugCdpMessages = (cri: CDPClient) => { } type DeferredPromise = { resolve: Function, reject: Function } +type CreateParams = { + target: string + onAsynchronousError: Function + host?: string + port?: number + onReconnect?: (client: CriClient) => void + protocolManager?: ProtocolManagerShape +} -export const create = async ( - target: string, - onAsynchronousError: Function, - host?: string, - port?: number, - onReconnect?: (client: CriClient) => void, -): Promise => { +export const create = async ({ + target, + onAsynchronousError, + host, + port, + onReconnect, + protocolManager, +}: CreateParams): Promise => { const subscriptions: Subscription[] = [] const enableCommands: EnableCommand[] = [] let enqueuedCommands: EnqueuedCommand[] = [] @@ -252,6 +262,32 @@ export const create = async ( debug('crash detected') crashed = true }) + + // We only want to try and add service worker traffic if we have a host set. This indicates that this is the child cri client. + if (host) { + cri.on('Target.targetCreated', async (event) => { + if (event.targetInfo.type === 'service_worker') { + const networkEnabledOptions = protocolManager?.protocolEnabled ? { + maxTotalBufferSize: 0, + maxResourceBufferSize: 0, + maxPostDataSize: 64 * 1024, + } : { + maxTotalBufferSize: 0, + maxResourceBufferSize: 0, + maxPostDataSize: 0, + } + + const { sessionId } = await cri.send('Target.attachToTarget', { + targetId: event.targetInfo.targetId, + flatten: true, + }) + + await cri.send('Network.enable', networkEnabledOptions, sessionId) + } + }) + + await cri.send('Target.setDiscoverTargets', { discover: true }) + } } await connect() diff --git a/packages/server/lib/browsers/electron.ts b/packages/server/lib/browsers/electron.ts index 33aed67a3866..31583a06735b 100644 --- a/packages/server/lib/browsers/electron.ts +++ b/packages/server/lib/browsers/electron.ts @@ -307,7 +307,10 @@ export = { cdpSocketServer?.attachCDPClient(cdpAutomation), videoApi && recordVideo(cdpAutomation, videoApi), this._handleDownloads(win, options.downloadsFolder, automation), - await utils.handleDownloadLinksViaCDP(pageCriClient, automation), + utils.handleDownloadLinksViaCDP(pageCriClient, automation), + // Ensure to clear browser state in between runs. This is handled differently in browsers when we launch new tabs, but we don't have that concept in electron + pageCriClient.send('Storage.clearDataForOrigin', { origin: '*', storageTypes: 'all' }), + pageCriClient.send('Network.clearBrowserCache'), ]) } diff --git a/packages/server/lib/project-base.ts b/packages/server/lib/project-base.ts index 129a38908316..5db44104b346 100644 --- a/packages/server/lib/project-base.ts +++ b/packages/server/lib/project-base.ts @@ -436,6 +436,12 @@ export class ProjectBase extends EE { setCurrentSpecAndBrowser (spec, browser: FoundBrowser) { this.spec = spec this.browser = browser + + if (this.browser.family !== 'chromium') { + // If we're not in chromium, our strategy for correlating service worker prerequests doesn't work in non-chromium browsers (https://github.com/cypress-io/cypress/issues/28079) + // in order to not hang for 2 seconds, we override the prerequest timeout to be 500 ms (which is what it has been historically) + this._server?.setPreRequestTimeout(500) + } } get protocolManager (): ProtocolManager | undefined { diff --git a/packages/server/lib/server-base.ts b/packages/server/lib/server-base.ts index cf6e15814382..6c36769ac8e6 100644 --- a/packages/server/lib/server-base.ts +++ b/packages/server/lib/server-base.ts @@ -218,6 +218,10 @@ export class ServerBase { this._networkProxy?.setProtocolManager(protocolManager) } + setPreRequestTimeout (timeout: number) { + this._networkProxy?.setPreRequestTimeout(timeout) + } + setupCrossOriginRequestHandling () { this._eventBus.on('cross:origin:cookies', (cookies: SerializableAutomationCookie[]) => { this.socket.localBus.once('cross:origin:cookies:received', () => { diff --git a/packages/server/test/integration/cdp_spec.ts b/packages/server/test/integration/cdp_spec.ts index fbf2f614f3c7..b38f4208a363 100644 --- a/packages/server/test/integration/cdp_spec.ts +++ b/packages/server/test/integration/cdp_spec.ts @@ -114,13 +114,11 @@ describe('CDP Clients', () => { const onAsynchronousError = reject const onReconnect = resolve - criClient = await CriClient.create( - `ws://127.0.0.1:${wsServerPort}`, + criClient = await CriClient.create({ + target: `ws://127.0.0.1:${wsServerPort}`, onAsynchronousError, - undefined, - undefined, onReconnect, - ) + }) criClient.onReconnectAttempt = stub @@ -146,13 +144,11 @@ describe('CDP Clients', () => { const onAsynchronousError = resolve const onReconnect = reject - criClient = await CriClient.create( - `ws://127.0.0.1:${wsServerPort}`, + criClient = await CriClient.create({ + target: `ws://127.0.0.1:${wsServerPort}`, onAsynchronousError, - undefined, - undefined, onReconnect, - ) + }) criClient.onReconnectAttempt = stub @@ -203,13 +199,11 @@ describe('CDP Clients', () => { return new Promise(async (resolve, reject) => { const onAsynchronousError = reject - criClient = await CriClient.create( - `ws://127.0.0.1:${wsServerPort}`, + criClient = await CriClient.create({ + target: `ws://127.0.0.1:${wsServerPort}`, onAsynchronousError, - undefined, - undefined, onReconnect, - ) + }) criClient.onReconnectAttempt = stub @@ -303,13 +297,11 @@ describe('CDP Clients', () => { const onAsynchronousError = reject const onReconnect = reject - criClient = await CriClient.create( - `ws://127.0.0.1:${wsServerPort}`, + criClient = await CriClient.create({ + target: `ws://127.0.0.1:${wsServerPort}`, onAsynchronousError, - undefined, - undefined, onReconnect, - ) + }) const stub = sinon.stub().onThirdCall().callsFake(async () => { criClient.close() diff --git a/packages/server/test/integration/cypress_spec.js b/packages/server/test/integration/cypress_spec.js index 1a0f9dada530..ca48af7aae03 100644 --- a/packages/server/test/integration/cypress_spec.js +++ b/packages/server/test/integration/cypress_spec.js @@ -1025,6 +1025,8 @@ describe('lib/cypress', () => { sinon.stub(chromeBrowser, '_setAutomation').returns(cdpAutomation) + sinon.stub(ProjectBase.prototype, 'resetBrowserState').resolves() + return cypress.start([ `--run-project=${this.pluginBrowser}`, '--browser=chrome', diff --git a/packages/server/test/unit/browsers/browser-cri-client_spec.ts b/packages/server/test/unit/browsers/browser-cri-client_spec.ts index abae2f836303..266b3dce36ed 100644 --- a/packages/server/test/unit/browsers/browser-cri-client_spec.ts +++ b/packages/server/test/unit/browsers/browser-cri-client_spec.ts @@ -39,7 +39,7 @@ describe('lib/browsers/cri-client', function () { send = sinon.stub() close = sinon.stub() - criClientCreateStub = sinon.stub(CriClient, 'create').withArgs('http://web/socket/url', onError).resolves({ + criClientCreateStub = sinon.stub(CriClient, 'create').withArgs({ target: 'http://web/socket/url', onAsynchronousError: onError, onReconnect: undefined, protocolManager: undefined }).resolves({ send, close, }) @@ -48,7 +48,14 @@ describe('lib/browsers/cri-client', function () { 'chrome-remote-interface': criImport, }) - getClient = (protocolManager) => browserCriClient.BrowserCriClient.create(['127.0.0.1'], PORT, 'Chrome', onError, undefined, protocolManager) + getClient = (protocolManager) => { + criClientCreateStub = criClientCreateStub.withArgs({ target: 'http://web/socket/url', onAsynchronousError: onError, onReconnect: undefined, protocolManager }).resolves({ + send, + close, + }) + + return browserCriClient.BrowserCriClient.create(['127.0.0.1'], PORT, 'Chrome', onError, undefined, protocolManager) + } }) context('.create', function () { @@ -143,7 +150,7 @@ describe('lib/browsers/cri-client', function () { const mockPageClient = {} send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - criClientCreateStub.withArgs('1', onError, HOST, PORT).resolves(mockPageClient) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined }).resolves(mockPageClient) const browserClient = await getClient() @@ -159,7 +166,7 @@ describe('lib/browsers/cri-client', function () { } send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - criClientCreateStub.withArgs('1', onError, HOST, PORT).resolves(mockPageClient) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager }).resolves(mockPageClient) const browserClient = await getClient(protocolManager) @@ -180,7 +187,7 @@ describe('lib/browsers/cri-client', function () { send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }, { targetId: '3', url: 'http://baz.com' }] }) - criClientCreateStub.withArgs('1', onError).resolves(mockPageClient) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined }).resolves(mockPageClient) const browserClient = await getClient() @@ -198,7 +205,7 @@ describe('lib/browsers/cri-client', function () { send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - criClientCreateStub.withArgs('1', onError).resolves(mockPageClient) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined }).resolves(mockPageClient) const browserClient = await getClient() @@ -219,7 +226,7 @@ describe('lib/browsers/cri-client', function () { send.withArgs('Target.createTarget', { url: 'about:blank' }).resolves(mockUpdatedCurrentlyAttachedTarget) send.withArgs('Target.closeTarget', { targetId: '100' }).resolves() - criClientCreateStub.withArgs('101', onError, HOST, PORT).resolves(mockUpdatedCurrentlyAttachedTarget) + criClientCreateStub.withArgs({ target: '101', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined }).resolves(mockUpdatedCurrentlyAttachedTarget) const browserClient = await getClient() as any diff --git a/packages/server/test/unit/browsers/cri-client_spec.ts b/packages/server/test/unit/browsers/cri-client_spec.ts index 1eaf964401d4..7b5d90dea71d 100644 --- a/packages/server/test/unit/browsers/cri-client_spec.ts +++ b/packages/server/test/unit/browsers/cri-client_spec.ts @@ -50,7 +50,7 @@ describe('lib/browsers/cri-client', function () { }) getClient = () => { - return criClient.create(DEBUGGER_URL, onError) + return criClient.create({ target: DEBUGGER_URL, onAsynchronousError: onError }) } }) diff --git a/packages/server/test/unit/browsers/electron_spec.js b/packages/server/test/unit/browsers/electron_spec.js index 4e7ec86c602f..1fe7fc2d5c76 100644 --- a/packages/server/test/unit/browsers/electron_spec.js +++ b/packages/server/test/unit/browsers/electron_spec.js @@ -356,6 +356,14 @@ describe('lib/browsers/electron', () => { }) }) + it('expects the browser to be reset', function () { + return electron._launch(this.win, this.url, this.automation, this.options, undefined, undefined, { attachCDPClient: sinon.stub() }) + .then(() => { + expect(this.pageCriClient.send).to.be.calledWith('Storage.clearDataForOrigin', { origin: '*', storageTypes: 'all' }) + expect(this.pageCriClient.send).to.be.calledWith('Network.clearBrowserCache') + }) + }) + it('registers onRequest automation middleware and calls show when requesting to be focused', function () { sinon.spy(this.automation, 'use') diff --git a/system-tests/projects/e2e/browser_reset.html b/system-tests/projects/e2e/browser_reset.html new file mode 100644 index 000000000000..a54441e3dcf8 --- /dev/null +++ b/system-tests/projects/e2e/browser_reset.html @@ -0,0 +1,12 @@ + + + + + + + +

hi

+ + diff --git a/system-tests/projects/e2e/cypress/e2e/browser_reset_first_spec.cy.js b/system-tests/projects/e2e/cypress/e2e/browser_reset_first_spec.cy.js index 74351747c794..322e12669b75 100644 --- a/system-tests/projects/e2e/cypress/e2e/browser_reset_first_spec.cy.js +++ b/system-tests/projects/e2e/cypress/e2e/browser_reset_first_spec.cy.js @@ -17,7 +17,32 @@ const req = (win) => { }) } +const indexedDB = (win) => { + return new Promise((resolve, reject) => { + const DBOpenRequest = win.indexedDB.open('toDoList', 1) + + DBOpenRequest.onupgradeneeded = (e) => { + console.log('on upgrade needed') + const db = e.target.result + + try { + db.createObjectStore('toDoList') + } catch (error) { + console.log(error) + } + + resolve(win) + } + }) +} + +const swReq = (win) => { + return win.navigator?.serviceWorker?.ready.then(() => win) +} + it('makes cached request', () => { - cy.visit('http://localhost:1515') + cy.visit('http://localhost:1515/browser_reset.html') .then(req) // this creates the disk cache + .then(indexedDB) // this creates the indexedDB + .then(swReq) // this creates the service worker }) diff --git a/system-tests/projects/e2e/cypress/e2e/browser_reset_second_spec.cy.js b/system-tests/projects/e2e/cypress/e2e/browser_reset_second_spec.cy.js index 7facff182c3d..79d1257e4f17 100644 --- a/system-tests/projects/e2e/cypress/e2e/browser_reset_second_spec.cy.js +++ b/system-tests/projects/e2e/cypress/e2e/browser_reset_second_spec.cy.js @@ -17,7 +17,27 @@ const req = (win) => { }) } +const indexedDB = (win) => { + return new Promise((resolve, reject) => { + const DBOpenRequest = win.indexedDB.open('toDoList') + + DBOpenRequest.onsuccess = (e) => { + const db = e.target.result + + expect(db.objectStoreNames.contains('toDoList')).to.be.false + + resolve(win) + } + }) +} + +const swReq = (win) => { + return win.navigator?.serviceWorker?.ready.then(() => win) +} + it('makes cached request', () => { - cy.visit('http://localhost:1515') + cy.visit('http://localhost:1515/browser_reset.html') .then(req) // this should hit our server even though cached in the first spec + .then(indexedDB) // this ensures the indexedDB is empty + .then(swReq) // this ensures the service worker is not registered }) diff --git a/system-tests/projects/e2e/cypress/e2e/service_worker.cy.js b/system-tests/projects/e2e/cypress/e2e/service_worker.cy.js new file mode 100644 index 000000000000..75bb104cfd93 --- /dev/null +++ b/system-tests/projects/e2e/cypress/e2e/service_worker.cy.js @@ -0,0 +1,18 @@ +const swReq = (win) => { + return win.navigator?.serviceWorker?.ready.then(() => win) +} + +// Timeout of 1500 will ensure that the proxy correlation timeout is not hit +it('loads service worker', { defaultCommandTimeout: 1500 }, () => { + cy.visit('https://localhost:1515/service_worker.html') + .then(swReq) +}) + +// Load the service worker again to ensure that the service worker cache +// can be loaded properly. There are requests that are made with the +// cache that have different headers that need to be tested in the proxy. +// Timeout of 1500 will ensure that the proxy correlation timeout is not hit +it('loads service worker', { defaultCommandTimeout: 1500 }, () => { + cy.visit('https://localhost:1515/service_worker.html') + .then(swReq) +}) diff --git a/system-tests/projects/e2e/service-worker.js b/system-tests/projects/e2e/service-worker.js new file mode 100644 index 000000000000..19a562f0f494 --- /dev/null +++ b/system-tests/projects/e2e/service-worker.js @@ -0,0 +1,28 @@ +const activate = async () => { + self.clients.claim() + if (self.registration.navigationPreload) { + await self.registration.navigationPreload.enable() + } +} + +self.addEventListener('activate', (event) => { + event.waitUntil(activate()) +}) + +self.addEventListener('install', function (event) { + event.waitUntil( + caches.open('v1').then(function (cache) { + return cache.addAll([ + '/cached-sw', + ]) + }), + ) +}) + +self.addEventListener('fetch', function (event) { + event.respondWith( + caches.match(event.request).then(function (response) { + return response || fetch(event.request) + }), + ) +}) diff --git a/system-tests/projects/e2e/service_worker.html b/system-tests/projects/e2e/service_worker.html new file mode 100644 index 000000000000..7c9a6a19ba92 --- /dev/null +++ b/system-tests/projects/e2e/service_worker.html @@ -0,0 +1,13 @@ + + + + + + + + +

hi

+ + diff --git a/system-tests/test/browser_reset_spec.js b/system-tests/test/browser_reset_spec.js index 932e9d4c30d8..99ab4256922a 100644 --- a/system-tests/test/browser_reset_spec.js +++ b/system-tests/test/browser_reset_spec.js @@ -5,8 +5,12 @@ const systemTests = require('../lib/system-tests').default const e2ePath = Fixtures.projectPath('e2e') let requestsForCache = 0 +let requestsForServiceWorkerCache = 0 const onServer = function (app) { + requestsForCache = 0 + requestsForServiceWorkerCache = 0 + app.use(express.static(e2ePath, { // force caching to happen maxAge: 3600000, @@ -19,6 +23,13 @@ const onServer = function (app) { .set('cache-control', 'public, max-age=3600') .send('this response will be disk cached') }) + + app.get('/cached-sw', (req, res) => { + requestsForServiceWorkerCache += 1 + + return res + .send('this response will be disk cached by service worker') + }) } describe('e2e browser reset', () => { @@ -32,9 +43,13 @@ describe('e2e browser reset', () => { systemTests.it('executes two specs with a cached call', { project: 'e2e', spec: 'browser_reset_first_spec.cy.js,browser_reset_second_spec.cy.js', - onRun: async (exec) => { + onRun: async (exec, browser) => { await exec() + // Ensure that the cache was not used for either response expect(requestsForCache).to.eq(2) + if (browser.family === 'chromium') { + expect(requestsForServiceWorkerCache).to.eq(2) + } }, }) }) diff --git a/system-tests/test/service_worker_spec.js b/system-tests/test/service_worker_spec.js new file mode 100644 index 000000000000..5969288d433f --- /dev/null +++ b/system-tests/test/service_worker_spec.js @@ -0,0 +1,57 @@ +const express = require('express') +const Fixtures = require('../lib/fixtures') +const systemTests = require('../lib/system-tests').default + +const e2ePath = Fixtures.projectPath('e2e') + +let requestsForServiceWorkerCache = 0 + +const onServer = function (app) { + app.use(express.static(e2ePath, { + // force caching to happen + maxAge: 3600000, + })) + + app.get('/cached-sw', (req, res) => { + res.set({ + 'Access-Control-Allow-Origin': '*', + }) + + // redirect to cached-sw-redirect on a cross origin server + return res.redirect('https://localhost:1516/cached-sw-redirect') + }) + + app.get('/cached-sw-redirect', (req, res) => { + requestsForServiceWorkerCache += 1 + res.set({ + 'Access-Control-Allow-Origin': '*', + }) + + return res.send('this response will be used by service worker') + }) +} + +describe('e2e browser reset', () => { + systemTests.setup({ + servers: [{ + https: true, + port: 1515, + onServer, + }, { + https: true, + port: 1516, + onServer, + }], + }) + + systemTests.it('executes one spec with a cached call', { + project: 'e2e', + spec: 'service_worker.cy.js', + onRun: async (exec, browser) => { + await exec() + // Ensure that we only called this once even though we loaded the + // service worker twice + expect(requestsForServiceWorkerCache).to.eq(1) + }, + }) +}) From 5d667b339773c6439a83422190ebf89b875ab95d Mon Sep 17 00:00:00 2001 From: Matt Schile Date: Wed, 18 Oct 2023 08:37:33 -0600 Subject: [PATCH 15/47] chore: update cache-version date (#28084) --- .circleci/cache-version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/cache-version.txt b/.circleci/cache-version.txt index 288d03ad1526..27ba28bd197a 100644 --- a/.circleci/cache-version.txt +++ b/.circleci/cache-version.txt @@ -1,3 +1,3 @@ # Bump this version to force CI to re-create the cache from scratch. -10-05-23 +10-18-23 From 04a1156ccd6093441c17ea04c98570ef8470a239 Mon Sep 17 00:00:00 2001 From: Matt Schile Date: Wed, 18 Oct 2023 09:16:19 -0600 Subject: [PATCH 16/47] chore: 13.3.2 release (#28086) --- cli/CHANGELOG.md | 6 ++++-- package.json | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 00577e909d58..83704f784c3c 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,7 +1,7 @@ ## 13.3.2 -_Released 10/25/2023 (PENDING)_ +_Released 10/18/2023_ **Bugfixes:** @@ -12,7 +12,9 @@ _Released 10/25/2023 (PENDING)_ **Dependency Updates:** -- Upgraded [`@babel/core`](https://www.npmjs.com/package/@babel/core) from `7.22.9` to `7.23.2` to address the [SNYK-JS-SEMVER-3247795](https://snyk.io/vuln/SNYK-JS-SEMVER-3247795) security vulnerability. Upgraded [`@babel/traverse`](https://www.npmjs.com/package/@babel/traverse) from `7.22.8` to `7.23.2` to address the [SNYK-JS-BABELTRAVERSE-5962462](https://snyk.io/vuln/SNYK-JS-BABELTRAVERSE-5962462) security vulnerability. Upgraded [`react-docgen`](https://www.npmjs.com/package/react-docgen) from `6.0.0-alpha.3` to `6.0.4` to address the [SNYK-JS-BABELTRAVERSE-5962462](https://snyk.io/vuln/SNYK-JS-BABELTRAVERSE-5962462) security vulnerability. Addressed in [#28063](https://github.com/cypress-io/cypress/pull/28063). +- Upgraded [`@babel/core`](https://www.npmjs.com/package/@babel/core) from `7.22.9` to `7.23.2` to address the [SNYK-JS-SEMVER-3247795](https://snyk.io/vuln/SNYK-JS-SEMVER-3247795) security vulnerability. Addressed in [#28063](https://github.com/cypress-io/cypress/pull/28063). +- Upgraded [`@babel/traverse`](https://www.npmjs.com/package/@babel/traverse) from `7.22.8` to `7.23.2` to address the [SNYK-JS-BABELTRAVERSE-5962462](https://snyk.io/vuln/SNYK-JS-BABELTRAVERSE-5962462) security vulnerability. Addressed in [#28063](https://github.com/cypress-io/cypress/pull/28063). +- Upgraded [`react-docgen`](https://www.npmjs.com/package/react-docgen) from `6.0.0-alpha.3` to `6.0.4` to address the [SNYK-JS-BABELTRAVERSE-5962462](https://snyk.io/vuln/SNYK-JS-BABELTRAVERSE-5962462) security vulnerability. Addressed in [#28063](https://github.com/cypress-io/cypress/pull/28063). ## 13.3.1 diff --git a/package.json b/package.json index 431e39aa4e18..f1177034550a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cypress", - "version": "13.3.1", + "version": "13.3.2", "description": "Cypress is a next generation front end testing tool built for the modern web", "private": true, "scripts": { From 74a06c53b886e73f4943f381aefef3697fc1b551 Mon Sep 17 00:00:00 2001 From: janlengyel Date: Mon, 23 Oct 2023 21:32:39 +0200 Subject: [PATCH 17/47] fix: ignore dash, underscore and space in search (#28012) Co-authored-by: Matt Schile Co-authored-by: Matt Schile --- cli/CHANGELOG.md | 8 +++ packages/app/cypress/e2e/specs_list_e2e.cy.ts | 61 +++++++++++++++++++ packages/app/src/specs/spec-utils.ts | 15 ++++- .../app/src/specs/tree/useCollapsibleTree.ts | 2 + 4 files changed, 84 insertions(+), 2 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 83704f784c3c..79cfe638b208 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,4 +1,12 @@ +## 13.3.3 + +_Released 10/24/2023 (PENDING)_ + +**Bugfixes:** + +- Fixed a regression in [10.0.0](#10.0.0), where search would not find a spec if the file name contains "-" or "\_", but search prompt contains " " instead (e.g. search file "spec-file.cy.ts" with prompt "spec file"). Fixes [#25303](https://github.com/cypress-io/cypress/issues/25303). + ## 13.3.2 _Released 10/18/2023_ diff --git a/packages/app/cypress/e2e/specs_list_e2e.cy.ts b/packages/app/cypress/e2e/specs_list_e2e.cy.ts index 06a1ab33123d..38db09b577f0 100644 --- a/packages/app/cypress/e2e/specs_list_e2e.cy.ts +++ b/packages/app/cypress/e2e/specs_list_e2e.cy.ts @@ -1,4 +1,5 @@ import { getPathForPlatform } from '../../src/paths' +import path from 'path' describe('App: Spec List (E2E)', () => { const launchApp = (specFilter?: string) => { @@ -253,6 +254,66 @@ describe('App: Spec List (E2E)', () => { cy.findByText('No specs matched your search:').should('not.be.visible') }) + it('searches specs with "-" or "_" when search contains space', function () { + clearSearchAndType('accounts list') + + cy.findAllByTestId('spec-item') + .should('have.length', 1) + .and('contain', 'accounts_list.spec.js') + + cy.findByText('No specs matched your search:').should('not.be.visible') + }) + + it('searches specs with "-" or "_" when search contains "-"', function () { + clearSearchAndType('accounts-list') + + cy.findAllByTestId('spec-item') + .should('have.length', 1) + .and('contain', 'accounts_list.spec.js') + + cy.findByText('No specs matched your search:').should('not.be.visible') + }) + + it('searches specs with "-" or "_" when search contains "_"', function () { + clearSearchAndType('accounts_list') + + cy.findAllByTestId('spec-item') + .should('have.length', 1) + .and('contain', 'accounts_list.spec.js') + + cy.findByText('No specs matched your search:').should('not.be.visible') + }) + + it('searches folders with "-" or "_" when search contains space', function () { + clearSearchAndType('a b c') + + cy.findAllByTestId('spec-list-directory') + .should('have.length', 1) + .and('contain', path.join('cypress', 'e2e', 'a-b_c')) + + cy.findByText('No specs matched your search:').should('not.be.visible') + }) + + it('searches folders with "-" or "_" when search contains "-"', function () { + clearSearchAndType('a-b-c') + + cy.findAllByTestId('spec-list-directory') + .should('have.length', 1) + .and('contain', path.join('cypress', 'e2e', 'a-b_c')) + + cy.findByText('No specs matched your search:').should('not.be.visible') + }) + + it('searches folders with "-" or "_" when search contains "_"', function () { + clearSearchAndType('a_b_c') + + cy.findAllByTestId('spec-list-directory') + .should('have.length', 1) + .and('contain', path.join('cypress', 'e2e', 'a-b_c')) + + cy.findByText('No specs matched your search:').should('not.be.visible') + }) + it('saves the filter when navigating to a spec and back', function () { const targetSpecFile = 'accounts_list.spec.js' diff --git a/packages/app/src/specs/spec-utils.ts b/packages/app/src/specs/spec-utils.ts index 5e725ac13a6c..87364a9f1aaf 100644 --- a/packages/app/src/specs/spec-utils.ts +++ b/packages/app/src/specs/spec-utils.ts @@ -5,10 +5,10 @@ import _ from 'lodash' import { FuzzyFoundSpec, getPlatform } from './tree/useCollapsibleTree' export function fuzzySortSpecs (specs: T[], searchValue: string) { - const normalizedSearchValue = getPlatform() === 'win32' ? searchValue.replaceAll('/', '\\') : searchValue + const normalizedSearchValue = normalizeSpecValue(searchValue) const fuzzySortResult = fuzzySort - .go(normalizedSearchValue, specs, { keys: ['relative', 'baseName'], allowTypo: false, threshold: -3000 }) + .go(normalizedSearchValue, specs, { keys: ['normalizedRelative', 'normalizedBaseName'], allowTypo: false, threshold: -3000 }) .map((result) => { const [relative, baseName] = result @@ -24,9 +24,20 @@ export function fuzzySortSpecs (specs: T[], searchVal return fuzzySortResult } +function normalizeSpecValue (name: string) { + const escapedPath = getPlatform() === 'win32' ? name.replaceAll('/', '\\') : name + // replace dash, underscore and space with common character (in this case dash) + // they are replaced and not removed to preserve string length (so highlighting works correctly) + const normalizedSymbols = escapedPath.replace(/[-_\s]/g, '-') + + return normalizedSymbols +} + export function makeFuzzyFoundSpec (spec: FoundSpec): FuzzyFoundSpec { return { ...spec, + normalizedBaseName: normalizeSpecValue(spec.baseName), + normalizedRelative: normalizeSpecValue(spec.relative), fuzzyIndexes: { relative: [], baseName: [], diff --git a/packages/app/src/specs/tree/useCollapsibleTree.ts b/packages/app/src/specs/tree/useCollapsibleTree.ts index d15215753660..7c9062ec01c7 100644 --- a/packages/app/src/specs/tree/useCollapsibleTree.ts +++ b/packages/app/src/specs/tree/useCollapsibleTree.ts @@ -11,6 +11,8 @@ export type RawNode = { } export type FuzzyFoundSpec = T & { + normalizedBaseName: string + normalizedRelative: string fuzzyIndexes: { relative: number[] baseName: number[] From d9606868c5201fc7dde5645094b756602b65f4f7 Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Mon, 23 Oct 2023 16:08:05 -0500 Subject: [PATCH 18/47] fix: fix failures and correlation in proxy (#28094) --- cli/CHANGELOG.md | 1 + packages/proxy/lib/http/index.ts | 20 +++- packages/proxy/lib/http/request-middleware.ts | 9 +- packages/proxy/lib/http/util/prerequests.ts | 22 +++- .../test/unit/http/util/prerequests.spec.ts | 25 +++- .../test/integration/http_requests_spec.js | 107 +++++++++++++++++- 6 files changed, 171 insertions(+), 13 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 79cfe638b208..0b7dfbe0a425 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -5,6 +5,7 @@ _Released 10/24/2023 (PENDING)_ **Bugfixes:** +- Fixed a performance problem with proxy correlation when requests get aborted and then get miscorrelated with follow up requests. Fixed in [#28094](https://github.com/cypress-io/cypress/pull/28094). - Fixed a regression in [10.0.0](#10.0.0), where search would not find a spec if the file name contains "-" or "\_", but search prompt contains " " instead (e.g. search file "spec-file.cy.ts" with prompt "spec file"). Fixes [#25303](https://github.com/cypress-io/cypress/issues/25303). ## 13.3.2 diff --git a/packages/proxy/lib/http/index.ts b/packages/proxy/lib/http/index.ts index 3ccb9e80afbf..7549e508e67e 100644 --- a/packages/proxy/lib/http/index.ts +++ b/packages/proxy/lib/http/index.ts @@ -9,7 +9,7 @@ import ErrorMiddleware from './error-middleware' import RequestMiddleware from './request-middleware' import ResponseMiddleware from './response-middleware' import { HttpBuffers } from './util/buffers' -import { GetPreRequestCb, PreRequests } from './util/prerequests' +import { GetPreRequestCb, PendingRequest, PreRequests } from './util/prerequests' import type EventEmitter from 'events' import type CyServer from '@packages/server' @@ -63,10 +63,12 @@ type HttpMiddlewareCtx = { stage: HttpStages debug: Debug.Debugger middleware: HttpMiddlewareStacks + pendingRequest: PendingRequest | undefined getCookieJar: () => CookieJar deferSourceMapRewrite: (opts: { js: string, url: string }) => string - getPreRequest: (cb: GetPreRequestCb) => void + getPreRequest: (cb: GetPreRequestCb) => PendingRequest | undefined addPendingUrlWithoutPreRequest: (url: string) => void + removePendingRequest: (pendingRequest: PendingRequest) => void getAUTUrl: Http['getAUTUrl'] setAUTUrl: Http['setAUTUrl'] simulatedCookies: SerializableAutomationCookie[] @@ -325,15 +327,25 @@ export class Http { getAUTUrl: this.getAUTUrl, setAUTUrl: this.setAUTUrl, getPreRequest: (cb) => { - this.preRequests.get(ctx.req, ctx.debug, cb) + return this.preRequests.get(ctx.req, ctx.debug, cb) }, addPendingUrlWithoutPreRequest: (url) => { this.preRequests.addPendingUrlWithoutPreRequest(url) }, + removePendingRequest: (pendingRequest: PendingRequest) => { + this.preRequests.removePendingRequest(pendingRequest) + }, protocolManager: this.protocolManager, } const onError = (error: Error): Promise => { + const pendingRequest = ctx.pendingRequest as PendingRequest | undefined + + if (pendingRequest) { + delete ctx.pendingRequest + ctx.removePendingRequest(pendingRequest) + } + ctx.error = error if (ctx.req.browserPreRequest && !ctx.req.browserPreRequest.errorHandled) { ctx.req.browserPreRequest.errorHandled = true @@ -427,7 +439,7 @@ export class Http { } removePendingBrowserPreRequest (requestId: string) { - this.preRequests.removePending(requestId) + this.preRequests.removePendingPreRequest(requestId) } addPendingUrlWithoutPreRequest (url: string) { diff --git a/packages/proxy/lib/http/request-middleware.ts b/packages/proxy/lib/http/request-middleware.ts index 04391b5fadfe..08d4490a1c33 100644 --- a/packages/proxy/lib/http/request-middleware.ts +++ b/packages/proxy/lib/http/request-middleware.ts @@ -128,7 +128,7 @@ const CorrelateBrowserPreRequest: RequestMiddleware = async function () { } this.debug('waiting for prerequest') - this.getPreRequest((({ browserPreRequest, noPreRequestExpected }) => { + this.pendingRequest = this.getPreRequest((({ browserPreRequest, noPreRequestExpected }) => { this.req.browserPreRequest = browserPreRequest this.req.noPreRequestExpected = noPreRequestExpected copyResourceTypeAndNext() @@ -455,6 +455,13 @@ const SendRequestOutgoing: RequestMiddleware = function () { this.debug('request aborted') // if the request is aborted, close out the middleware span and http span. the response middleware did not run + const pendingRequest = this.pendingRequest + + if (pendingRequest) { + delete this.pendingRequest + this.removePendingRequest(pendingRequest) + } + this.reqMiddlewareSpan?.setAttributes({ requestAborted: true, }) diff --git a/packages/proxy/lib/http/util/prerequests.ts b/packages/proxy/lib/http/util/prerequests.ts index 9759828af211..cbdd41f9a13f 100644 --- a/packages/proxy/lib/http/util/prerequests.ts +++ b/packages/proxy/lib/http/util/prerequests.ts @@ -28,7 +28,8 @@ export type CorrelationInformation = { export type GetPreRequestCb = (correlationInformation: CorrelationInformation) => void -type PendingRequest = { +export type PendingRequest = { + key: string ctxDebug callback?: GetPreRequestCb timeout: NodeJS.Timeout @@ -74,10 +75,12 @@ class QueueMap { }) } removeExact (queueKey: string, value: T) { - const i = this.queues[queueKey].findIndex((v) => v === value) + const i = this.queues[queueKey]?.findIndex((v) => v === value) - this.queues[queueKey].splice(i, 1) - if (this.queues[queueKey].length === 0) delete this.queues[queueKey] + if (i > -1) { + this.queues[queueKey].splice(i, 1) + if (this.queues[queueKey].length === 0) delete this.queues[queueKey] + } } forEach (fn: (value: T) => void) { @@ -210,7 +213,7 @@ export class PreRequests { }) } - removePending (requestId: string) { + removePendingPreRequest (requestId: string) { this.pendingPreRequests.removeMatching(({ browserPreRequest }) => { return (browserPreRequest.requestId.includes('-retry-') && !browserPreRequest.requestId.startsWith(`${requestId}-`)) || (!browserPreRequest.requestId.includes('-retry-') && browserPreRequest.requestId !== requestId) }) @@ -267,6 +270,7 @@ export class PreRequests { } const pendingRequest: PendingRequest = { + key, ctxDebug, callback, proxyRequestReceivedTimestamp: performance.now() + performance.timeOrigin, @@ -283,6 +287,8 @@ export class PreRequests { } this.pendingRequests.push(key, pendingRequest) + + return pendingRequest } setProtocolManager (protocolManager: ProtocolManagerShape) { @@ -293,6 +299,12 @@ export class PreRequests { this.requestTimeout = requestTimeout } + removePendingRequest (pendingRequest: PendingRequest) { + this.pendingRequests.removeExact(pendingRequest.key, pendingRequest) + clearTimeout(pendingRequest.timeout) + delete pendingRequest.callback + } + reset () { this.pendingPreRequests = new QueueMap() diff --git a/packages/proxy/test/unit/http/util/prerequests.spec.ts b/packages/proxy/test/unit/http/util/prerequests.spec.ts index f607a823ee0b..391a73ef957d 100644 --- a/packages/proxy/test/unit/http/util/prerequests.spec.ts +++ b/packages/proxy/test/unit/http/util/prerequests.spec.ts @@ -207,7 +207,7 @@ describe('http/util/prerequests', () => { expectPendingCounts(0, 3) - preRequests.removePending('1235') + preRequests.removePendingPreRequest('1235') expectPendingCounts(0, 2) }) @@ -222,7 +222,7 @@ describe('http/util/prerequests', () => { expectPendingCounts(0, 6) - preRequests.removePending('1235') + preRequests.removePendingPreRequest('1235') expectPendingCounts(0, 2) }) @@ -236,6 +236,27 @@ describe('http/util/prerequests', () => { expect(cbServiceWorker).to.be.calledWith() }) + it('removes a pending request', () => { + const cb = sinon.stub() + + const firstPreRequest = preRequests.get({ proxiedUrl: 'foo', method: 'GET', headers: {} } as CypressIncomingRequest, () => {}, cb) + const secondPreRequest = preRequests.get({ proxiedUrl: 'foo', method: 'GET', headers: {} } as CypressIncomingRequest, () => {}, cb) + + expectPendingCounts(2, 0) + + preRequests.removePendingRequest(firstPreRequest!) + + expectPendingCounts(1, 0) + + preRequests.removePendingRequest(firstPreRequest!) + + expectPendingCounts(1, 0) + + preRequests.removePendingRequest(secondPreRequest!) + + expectPendingCounts(0, 0) + }) + it('resets the queues', () => { let callbackCalled = false diff --git a/packages/server/test/integration/http_requests_spec.js b/packages/server/test/integration/http_requests_spec.js index 921ed2097edc..5eed3127763b 100644 --- a/packages/server/test/integration/http_requests_spec.js +++ b/packages/server/test/integration/http_requests_spec.js @@ -94,7 +94,7 @@ describe('Routes', () => { Fixtures.scaffold() - this.setup = async (initialUrl, obj = {}, spec) => { + this.setup = async (initialUrl, obj = {}, spec, shouldCorrelatePreRequests = false) => { if (_.isObject(initialUrl)) { obj = initialUrl initialUrl = null @@ -170,6 +170,7 @@ describe('Routes', () => { createRoutes, testingType: 'e2e', exit: false, + shouldCorrelatePreRequests: () => shouldCorrelatePreRequests, }) .spread(async (port) => { const automationStub = { @@ -187,6 +188,8 @@ describe('Routes', () => { this.session = session(this.srv) this.proxy = `http://localhost:${port}` + + this.networkProxy = this.server._networkProxy }), ]) }) @@ -983,6 +986,108 @@ describe('Routes', () => { }) }) + context('basic request with correlation', () => { + beforeEach(function () { + return this.setup('http://www.github.com', undefined, undefined, true) + }) + + it('properly correlates when CDP failures come first', function () { + this.timeout(1500) + + nock(this.server.remoteStates.current().origin) + .get('/') + .reply(200, 'hello from bar!', { + 'Content-Type': 'text/html', + }) + + this.networkProxy.addPendingBrowserPreRequest({ + requestId: '1', + method: 'GET', + url: 'http://www.github.com/', + }) + + this.networkProxy.removePendingBrowserPreRequest({ + requestId: '1', + }) + + const requestPromise = this.rp({ + url: 'http://www.github.com/', + headers: { + 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', + }, + }) + + this.networkProxy.addPendingBrowserPreRequest({ + requestId: '1', + method: 'GET', + url: 'http://www.github.com/', + }) + + return requestPromise.then((res) => { + expect(res.statusCode).to.eq(200) + + expect(res.body).to.include('hello from bar!') + }) + }) + + it('properly correlates when proxy failure come first', function () { + this.networkProxy.setPreRequestTimeout(50) + // If this takes longer than the Promise.delay and the prerequest timeout then the second + // call has hit the prerequest timeout which is a problem + this.timeout(150) + + nock(this.server.remoteStates.current().origin) + .get('/') + .delay(50) + .once() + .reply(200, 'hello from bar!', { + 'Content-Type': 'text/html', + }) + + this.rp({ + url: 'http://www.github.com/', + headers: { + 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', + }, + // Timeout needs to be less than the prerequest timeout + the nock delay + timeout: 75, + }).catch(() => {}) + + // Wait 100 ms to make sure the request times out + return Promise.delay(100).then(() => { + nock(this.server.remoteStates.current().origin) + .get('/') + .once() + .reply(200, 'hello from baz!', { + 'Content-Type': 'text/html', + }) + + // This should not immediately correlate. If it does, then the next request will timeout + this.networkProxy.addPendingBrowserPreRequest({ + requestId: '1', + method: 'GET', + url: 'http://www.github.com/', + }) + + const followupRequestPromise = this.rp({ + url: 'http://www.github.com/', + headers: { + 'Cookie': '__cypress.initial=true', + 'Accept-Encoding': 'identity', + }, + }) + + return followupRequestPromise.then((res) => { + expect(res.statusCode).to.eq(200) + + expect(res.body).to.include('hello from baz!') + }) + }) + }) + }) + context('gzip', () => { beforeEach(function () { return this.setup('http://www.github.com') From dbd213926c0a6d116d7a392fe679d30519dd9f17 Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Mon, 23 Oct 2023 22:26:21 -0500 Subject: [PATCH 19/47] fix: issue with proxy correlations and web/shared workers (#28105) --- cli/CHANGELOG.md | 1 + .../server/lib/browsers/browser-cri-client.ts | 65 ++++++++++++- .../server/lib/browsers/cdp_automation.ts | 16 +--- packages/server/lib/browsers/chrome.ts | 10 +- packages/server/lib/browsers/cri-client.ts | 96 ++++++++++++------- packages/server/lib/browsers/electron.ts | 2 +- packages/server/lib/browsers/firefox-util.ts | 2 +- packages/server/lib/cloud/protocol.ts | 8 ++ .../unit/browsers/browser-cri-client_spec.ts | 41 +++++--- .../test/unit/browsers/cdp_automation_spec.ts | 4 +- .../test/unit/browsers/cri-client_spec.ts | 10 +- .../server/test/unit/browsers/firefox_spec.ts | 10 +- packages/types/src/protocol.ts | 1 + .../projects/e2e/cypress/e2e/web_worker.cy.js | 34 +++++++ system-tests/projects/e2e/shared-worker.js | 14 +++ system-tests/projects/e2e/web-worker.js | 10 ++ system-tests/projects/e2e/web_worker.html | 13 +++ system-tests/test/service_worker_spec.js | 2 +- system-tests/test/web_worker_spec.js | 53 ++++++++++ 19 files changed, 313 insertions(+), 79 deletions(-) create mode 100644 system-tests/projects/e2e/cypress/e2e/web_worker.cy.js create mode 100644 system-tests/projects/e2e/shared-worker.js create mode 100644 system-tests/projects/e2e/web-worker.js create mode 100644 system-tests/projects/e2e/web_worker.html create mode 100644 system-tests/test/web_worker_spec.js diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 0b7dfbe0a425..43880abc0b8d 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -5,6 +5,7 @@ _Released 10/24/2023 (PENDING)_ **Bugfixes:** +- Fixed a performance regression in `13.3.1` with proxy correlation timeouts and requests issued from web and shared workers. Fixes [#28104](https://github.com/cypress-io/cypress/issues/28104). - Fixed a performance problem with proxy correlation when requests get aborted and then get miscorrelated with follow up requests. Fixed in [#28094](https://github.com/cypress-io/cypress/pull/28094). - Fixed a regression in [10.0.0](#10.0.0), where search would not find a spec if the file name contains "-" or "\_", but search prompt contains " " instead (e.g. search file "spec-file.cy.ts" with prompt "spec file"). Fixes [#25303](https://github.com/cypress-io/cypress/issues/25303). diff --git a/packages/server/lib/browsers/browser-cri-client.ts b/packages/server/lib/browsers/browser-cri-client.ts index a084f2bd0cab..09a61720ffac 100644 --- a/packages/server/lib/browsers/browser-cri-client.ts +++ b/packages/server/lib/browsers/browser-cri-client.ts @@ -3,7 +3,7 @@ import CRI from 'chrome-remote-interface' import Debug from 'debug' import { _connectAsync, _getDelayMsForRetry } from './protocol' import * as errors from '../errors' -import { create, CriClient } from './cri-client' +import { create, CriClient, DEFAULT_NETWORK_ENABLE_OPTIONS } from './cri-client' import type { ProtocolManagerShape } from '@packages/types' const debug = Debug('cypress:server:browsers:browser-cri-client') @@ -13,6 +13,27 @@ interface Version { minor: number } +type BrowserCriClientOptions = { + browserClient: CriClient + versionInfo: CRI.VersionResult + host: string + port: number + browserName: string + onAsynchronousError: Function + protocolManager?: ProtocolManagerShape + fullyManageTabs?: boolean +} + +type BrowserCriClientCreateOptions = { + hosts: string[] + port: number + browserName: string + onAsynchronousError: Function + onReconnect?: (client: CriClient) => void + protocolManager?: ProtocolManagerShape + fullyManageTabs?: boolean +} + const isVersionGte = (a: Version, b: Version) => { return a.major > b.major || (a.major === b.major && a.minor >= b.minor) } @@ -114,6 +135,14 @@ const retryWithIncreasingDelay = async (retryable: () => Promise, browserN } export class BrowserCriClient { + private browserClient: CriClient + private versionInfo: CRI.VersionResult + private host: string + private port: number + private browserName: string + private onAsynchronousError: Function + private protocolManager?: ProtocolManagerShape + private fullyManageTabs?: boolean currentlyAttachedTarget: CriClient | undefined // whenever we instantiate the instance we're already connected bc // we receive an underlying CRI connection @@ -125,7 +154,16 @@ export class BrowserCriClient { gracefulShutdown?: Boolean onClose: Function | null = null - private constructor (private browserClient: CriClient, private versionInfo, public host: string, public port: number, private browserName: string, private onAsynchronousError: Function, private protocolManager?: ProtocolManagerShape) { } + private constructor ({ browserClient, versionInfo, host, port, browserName, onAsynchronousError, protocolManager, fullyManageTabs }: BrowserCriClientOptions) { + this.browserClient = browserClient + this.versionInfo = versionInfo + this.host = host + this.port = port + this.browserName = browserName + this.onAsynchronousError = onAsynchronousError + this.protocolManager = protocolManager + this.fullyManageTabs = fullyManageTabs + } /** * Factory method for the browser cri client. Connects to the browser and then returns a chrome remote interface wrapper around the @@ -140,7 +178,7 @@ export class BrowserCriClient { * @param fullyManageTabs whether or not to fully manage tabs. This is useful for firefox where some work is done with marionette and some with CDP. We don't want to handle disconnections in this class in those scenarios * @returns a wrapper around the chrome remote interface that is connected to the browser target */ - static async create (hosts: string[], port: number, browserName: string, onAsynchronousError: Function, onReconnect?: (client: CriClient) => void, protocolManager?: ProtocolManagerShape, { fullyManageTabs }: { fullyManageTabs?: boolean } = {}): Promise { + static async create ({ hosts, port, browserName, onAsynchronousError, onReconnect, protocolManager, fullyManageTabs }: BrowserCriClientCreateOptions): Promise { const host = await ensureLiveBrowser(hosts, port, browserName) return retryWithIncreasingDelay(async () => { @@ -151,11 +189,26 @@ export class BrowserCriClient { onAsynchronousError, onReconnect, protocolManager, + fullyManageTabs, }) - const browserCriClient = new BrowserCriClient(browserClient, versionInfo, host!, port, browserName, onAsynchronousError, protocolManager) + const browserCriClient = new BrowserCriClient({ browserClient, versionInfo, host, port, browserName, onAsynchronousError, protocolManager, fullyManageTabs }) if (fullyManageTabs) { + // The basic approach here is we attach to targets and enable network traffic + // We must attach in a paused state so that we can enable network traffic before the target starts running. + browserClient.on('Target.attachedToTarget', async (event) => { + if (event.targetInfo.type !== 'page') { + await browserClient.send('Network.enable', protocolManager?.networkEnableOptions ?? DEFAULT_NETWORK_ENABLE_OPTIONS, event.sessionId) + } + + if (event.waitingForDebugger) { + await browserClient.send('Runtime.runIfWaitingForDebugger', undefined, event.sessionId) + } + }) + + // Ideally we could use filter rather than checking the type above, but that was added relatively recently + await browserClient.send('Target.setAutoAttach', { autoAttach: true, waitForDebuggerOnStart: true, flatten: true }) await browserClient.send('Target.setDiscoverTargets', { discover: true }) browserClient.on('Target.targetDestroyed', (event) => { debug('Target.targetDestroyed %o', { @@ -270,7 +323,8 @@ export class BrowserCriClient { throw new Error(`Could not find url target in browser ${url}. Targets were ${JSON.stringify(targets)}`) } - this.currentlyAttachedTarget = await create({ target: target.targetId, onAsynchronousError: this.onAsynchronousError, host: this.host, port: this.port, protocolManager: this.protocolManager }) + this.currentlyAttachedTarget = await create({ target: target.targetId, onAsynchronousError: this.onAsynchronousError, host: this.host, port: this.port, protocolManager: this.protocolManager, fullyManageTabs: this.fullyManageTabs, browserClient: this.browserClient }) + await this.protocolManager?.connectToBrowser(this.currentlyAttachedTarget) return this.currentlyAttachedTarget @@ -323,6 +377,7 @@ export class BrowserCriClient { host: this.host, port: this.port, protocolManager: this.protocolManager, + fullyManageTabs: this.fullyManageTabs, }) } else { this.currentlyAttachedTarget = undefined diff --git a/packages/server/lib/browsers/cdp_automation.ts b/packages/server/lib/browsers/cdp_automation.ts index 6255de775972..df65885c0a2d 100644 --- a/packages/server/lib/browsers/cdp_automation.ts +++ b/packages/server/lib/browsers/cdp_automation.ts @@ -13,7 +13,7 @@ import type { ResourceType, BrowserPreRequest, BrowserResponseReceived } from '@ import type { CDPClient, ProtocolManagerShape, WriteVideoFrame } from '@packages/types' import type { Automation } from '../automation' import { cookieMatches, CyCookie, CyCookieFilter } from '../automation/util' -import type { CriClient } from './cri-client' +import { DEFAULT_NETWORK_ENABLE_OPTIONS, CriClient } from './cri-client' export type CdpCommand = keyof ProtocolMapping.Commands @@ -140,7 +140,7 @@ export const normalizeResourceType = (resourceType: string | undefined): Resourc return ffToStandardResourceTypeMap[resourceType] || 'other' } -export type SendDebuggerCommand = (message: T, data?: ProtocolMapping.Commands[T]['paramsType'][0]) => Promise +export type SendDebuggerCommand = (message: T, data?: ProtocolMapping.Commands[T]['paramsType'][0], sessionId?: string) => Promise export type OnFn = (eventName: T, cb: (data: ProtocolMapping.Events[T][0]) => void) => void @@ -198,17 +198,7 @@ export class CdpAutomation implements CDPClient { static async create (sendDebuggerCommandFn: SendDebuggerCommand, onFn: OnFn, offFn: OffFn, sendCloseCommandFn: SendCloseCommand, automation: Automation, protocolManager?: ProtocolManagerShape): Promise { const cdpAutomation = new CdpAutomation(sendDebuggerCommandFn, onFn, offFn, sendCloseCommandFn, automation) - const networkEnabledOptions = protocolManager?.protocolEnabled ? { - maxTotalBufferSize: 0, - maxResourceBufferSize: 0, - maxPostDataSize: 64 * 1024, - } : { - maxTotalBufferSize: 0, - maxResourceBufferSize: 0, - maxPostDataSize: 0, - } - - await sendDebuggerCommandFn('Network.enable', networkEnabledOptions) + await sendDebuggerCommandFn('Network.enable', protocolManager?.networkEnableOptions ?? DEFAULT_NETWORK_ENABLE_OPTIONS) return cdpAutomation } diff --git a/packages/server/lib/browsers/chrome.ts b/packages/server/lib/browsers/chrome.ts index 4f09b9f7fc82..ea6b1e20d705 100644 --- a/packages/server/lib/browsers/chrome.ts +++ b/packages/server/lib/browsers/chrome.ts @@ -473,7 +473,7 @@ export = { debug('connecting to existing chrome instance with url and debugging port', { url: options.url, port }) if (!options.onError) throw new Error('Missing onError in connectToExisting') - const browserCriClient = await BrowserCriClient.create(['127.0.0.1'], port, browser.displayName, options.onError, onReconnect, undefined, { fullyManageTabs: false }) + const browserCriClient = await BrowserCriClient.create({ hosts: ['127.0.0.1'], port, browserName: browser.displayName, onAsynchronousError: options.onError, onReconnect, fullyManageTabs: false }) if (!options.url) throw new Error('Missing url in connectToExisting') @@ -488,7 +488,11 @@ export = { const browserCriClient = this._getBrowserCriClient() // Handle chrome tab crashes. - pageCriClient.on('Inspector.targetCrashed', async () => { + pageCriClient.on('Target.targetCrashed', async (event) => { + if (event.targetId !== browserCriClient?.currentlyAttachedTarget?.targetId) { + return + } + const err = errors.get('RENDERER_CRASHED', browser.displayName) await memory.endProfiling() @@ -597,7 +601,7 @@ export = { // navigate to the actual url if (!options.onError) throw new Error('Missing onError in chrome#open') - browserCriClient = await BrowserCriClient.create(['127.0.0.1'], port, browser.displayName, options.onError, onReconnect, options.protocolManager, { fullyManageTabs: true }) + browserCriClient = await BrowserCriClient.create({ hosts: ['127.0.0.1'], port, browserName: browser.displayName, onAsynchronousError: options.onError, onReconnect, protocolManager: options.protocolManager, fullyManageTabs: true }) la(browserCriClient, 'expected Chrome remote interface reference', browserCriClient) diff --git a/packages/server/lib/browsers/cri-client.ts b/packages/server/lib/browsers/cri-client.ts index 2b983b3b05fd..2db9a0ce6996 100644 --- a/packages/server/lib/browsers/cri-client.ts +++ b/packages/server/lib/browsers/cri-client.ts @@ -28,11 +28,13 @@ type EnqueuedCommand = { command: CdpCommand params?: object p: DeferredPromise + sessionId?: string } type EnableCommand = { command: CdpCommand params?: object + sessionId?: string } type Subscription = { @@ -45,6 +47,12 @@ interface CDPClient extends CDP.Client { _ws: WebSocket } +export const DEFAULT_NETWORK_ENABLE_OPTIONS = { + maxTotalBufferSize: 0, + maxResourceBufferSize: 0, + maxPostDataSize: 0, +} + export interface CriClient { /** * The target id attached to by this client @@ -138,6 +146,8 @@ type CreateParams = { port?: number onReconnect?: (client: CriClient) => void protocolManager?: ProtocolManagerShape + fullyManageTabs?: boolean + browserClient?: CriClient } export const create = async ({ @@ -147,6 +157,8 @@ export const create = async ({ port, onReconnect, protocolManager, + fullyManageTabs, + browserClient, }: CreateParams): Promise => { const subscriptions: Subscription[] = [] const enableCommands: EnableCommand[] = [] @@ -183,12 +195,12 @@ export const create = async ({ // '*.enable' commands need to be resent on reconnect or any events in // that namespace will no longer be received - await Promise.all(enableCommands.map(({ command, params }) => { - return cri.send(command, params) + await Promise.all(enableCommands.map(({ command, params, sessionId }) => { + return cri.send(command, params, sessionId) })) enqueuedCommands.forEach((cmd) => { - cri.send(cmd.command, cmd.params).then(cmd.p.resolve as any, cmd.p.reject as any) + cri.send(cmd.command, cmd.params, cmd.sessionId).then(cmd.p.resolve as any, cmd.p.reject as any) }) enqueuedCommands = [] @@ -258,35 +270,35 @@ export const create = async ({ cri.on('disconnect', retryReconnect) } - cri.on('Inspector.targetCrashed', async () => { - debug('crash detected') - crashed = true - }) - - // We only want to try and add service worker traffic if we have a host set. This indicates that this is the child cri client. + // We only want to try and add child target traffic if we have a host set. This indicates that this is the child cri client. + // Browser cri traffic is handled in browser-cri-client.ts. The basic approach here is we attach to targets and enable network traffic + // We must attach in a paused state so that we can enable network traffic before the target starts running. if (host) { - cri.on('Target.targetCreated', async (event) => { - if (event.targetInfo.type === 'service_worker') { - const networkEnabledOptions = protocolManager?.protocolEnabled ? { - maxTotalBufferSize: 0, - maxResourceBufferSize: 0, - maxPostDataSize: 64 * 1024, - } : { - maxTotalBufferSize: 0, - maxResourceBufferSize: 0, - maxPostDataSize: 0, - } - - const { sessionId } = await cri.send('Target.attachToTarget', { - targetId: event.targetInfo.targetId, - flatten: true, - }) - - await cri.send('Network.enable', networkEnabledOptions, sessionId) + cri.on('Target.targetCrashed', async (event) => { + if (event.targetId !== target) { + return } + + debug('crash detected') + crashed = true }) - await cri.send('Target.setDiscoverTargets', { discover: true }) + if (fullyManageTabs) { + cri.on('Target.attachedToTarget', async (event) => { + // Service workers get attached at the page and browser level. We only want to handle them at the browser level + if (event.targetInfo.type !== 'service_worker' && event.targetInfo.type !== 'page') { + await cri.send('Network.enable', protocolManager?.networkEnableOptions ?? DEFAULT_NETWORK_ENABLE_OPTIONS, event.sessionId) + } + + if (event.waitingForDebugger) { + await cri.send('Runtime.runIfWaitingForDebugger', undefined, event.sessionId) + } + }) + + // Ideally we could use filter rather than checking the type above, but that was added relatively recently + await cri.send('Target.setAutoAttach', { autoAttach: true, waitForDebuggerOnStart: true, flatten: true }) + await cri.send('Target.setDiscoverTargets', { discover: true }) + } } } @@ -295,7 +307,7 @@ export const create = async ({ client = { targetId: target, - async send (command: CdpCommand, params?: object) { + async send (command: CdpCommand, params?: object, sessionId?: string) { if (crashed) { return Promise.reject(new Error(`${command} will not run as the target browser or tab CRI connection has crashed`)) } @@ -313,6 +325,10 @@ export const create = async ({ obj.params = params } + if (sessionId) { + obj.sessionId = sessionId + } + enqueuedCommands.push(obj) }) } @@ -328,12 +344,16 @@ export const create = async ({ obj.params = params } + if (sessionId) { + obj.sessionId = sessionId + } + enableCommands.push(obj) } if (connected) { try { - return await cri.send(command, params) + return await cri.send(command, params, sessionId) } catch (err) { // This error occurs when the browser has been left open for a long // time and/or the user's computer has been put to sleep. The @@ -343,7 +363,7 @@ export const create = async ({ throw err } - debug('encountered closed websocket on send %o', { command, params, err }) + debug('encountered closed websocket on send %o', { command, params, sessionId, err }) const p = enqueue() as Promise @@ -367,7 +387,12 @@ export const create = async ({ subscriptions.push({ eventName, cb }) debug('registering CDP on event %o', { eventName }) - return cri.on(eventName, cb) + cri.on(eventName, cb) + // This ensures that we are notified about the browser's network events that have been registered (e.g. service workers) + // Long term we should use flat mode entirely across all of chrome remote interface + if (eventName.startsWith('Network.')) { + browserClient?.on(eventName, cb) + } }, off (eventName, cb) { @@ -375,7 +400,12 @@ export const create = async ({ return sub.eventName === eventName && sub.cb === cb }), 1) - return cri.off(eventName, cb) + cri.off(eventName, cb) + // This ensures that we are notified about the browser's network events that have been registered (e.g. service workers) + // Long term we should use flat mode entirely across all of chrome remote interface + if (eventName.startsWith('Network.')) { + browserClient?.off(eventName, cb) + } }, get ws () { diff --git a/packages/server/lib/browsers/electron.ts b/packages/server/lib/browsers/electron.ts index 31583a06735b..52a7b1e33c73 100644 --- a/packages/server/lib/browsers/electron.ts +++ b/packages/server/lib/browsers/electron.ts @@ -54,7 +54,7 @@ const _getAutomation = async function (win, options: BrowserLaunchOpts, parent) const port = getRemoteDebuggingPort() if (!browserCriClient) { - browserCriClient = await BrowserCriClient.create(['127.0.0.1'], port, 'electron', options.onError, () => {}, undefined, { fullyManageTabs: true }) + browserCriClient = await BrowserCriClient.create({ hosts: ['127.0.0.1'], port, browserName: 'electron', onAsynchronousError: options.onError, onReconnect: () => {}, fullyManageTabs: true }) } const pageCriClient = await browserCriClient.attachToTargetUrl('about:blank') diff --git a/packages/server/lib/browsers/firefox-util.ts b/packages/server/lib/browsers/firefox-util.ts index 34c6b5d640db..72b9c1e545b3 100644 --- a/packages/server/lib/browsers/firefox-util.ts +++ b/packages/server/lib/browsers/firefox-util.ts @@ -138,7 +138,7 @@ async function connectToNewSpec (options, automation: Automation, browserCriClie } async function setupRemote (remotePort, automation, onError): Promise { - const browserCriClient = await BrowserCriClient.create(['127.0.0.1', '::1'], remotePort, 'Firefox', onError) + const browserCriClient = await BrowserCriClient.create({ hosts: ['127.0.0.1', '::1'], port: remotePort, browserName: 'Firefox', onAsynchronousError: onError }) const pageCriClient = await browserCriClient.attachToTargetUrl('about:blank') await CdpAutomation.create(pageCriClient.send, pageCriClient.on, pageCriClient.off, browserCriClient.resetBrowserTargets, automation) diff --git a/packages/server/lib/cloud/protocol.ts b/packages/server/lib/cloud/protocol.ts index 478a5d887207..79acbbedee92 100644 --- a/packages/server/lib/cloud/protocol.ts +++ b/packages/server/lib/cloud/protocol.ts @@ -72,6 +72,14 @@ export class ProtocolManager implements ProtocolManagerShape { return !!this._protocol } + get networkEnableOptions () { + return this.protocolEnabled ? { + maxTotalBufferSize: 0, + maxResourceBufferSize: 0, + maxPostDataSize: 64 * 1024, + } : undefined + } + async setupProtocol (script: string, options: ProtocolManagerOptions) { this._captureHash = base64url.fromBase64(crypto.createHash('SHA256').update(script).digest('base64')) diff --git a/packages/server/test/unit/browsers/browser-cri-client_spec.ts b/packages/server/test/unit/browsers/browser-cri-client_spec.ts index 266b3dce36ed..fc4656f6f8bd 100644 --- a/packages/server/test/unit/browsers/browser-cri-client_spec.ts +++ b/packages/server/test/unit/browsers/browser-cri-client_spec.ts @@ -10,6 +10,11 @@ const HOST = '127.0.0.1' const PORT = 50505 const THROWS_PORT = 65535 +type GetClientParams = { + protocolManager?: ProtocolManagerShape + fullyManageTabs?: boolean +} + describe('lib/browsers/cri-client', function () { let browserCriClient: { BrowserCriClient: { @@ -17,13 +22,14 @@ describe('lib/browsers/cri-client', function () { } } let send: sinon.SinonStub + let on: sinon.SinonStub let close: sinon.SinonStub let criClientCreateStub: sinon.SinonStub let criImport: sinon.SinonStub & { Version: sinon.SinonStub } let onError: sinon.SinonStub - let getClient: (protocolManager?: ProtocolManagerShape) => ReturnType + let getClient: (options?: GetClientParams) => ReturnType beforeEach(function () { sinon.stub(protocol, '_connectAsync') @@ -37,10 +43,12 @@ describe('lib/browsers/cri-client', function () { .onSecondCall().throws() .onThirdCall().resolves({ webSocketDebuggerUrl: 'http://web/socket/url' }) + on = sinon.stub() send = sinon.stub() close = sinon.stub() - criClientCreateStub = sinon.stub(CriClient, 'create').withArgs({ target: 'http://web/socket/url', onAsynchronousError: onError, onReconnect: undefined, protocolManager: undefined }).resolves({ + criClientCreateStub = sinon.stub(CriClient, 'create').withArgs({ target: 'http://web/socket/url', onAsynchronousError: onError, onReconnect: undefined, protocolManager: undefined, fullyManageTabs: undefined }).resolves({ send, + on, close, }) @@ -48,13 +56,14 @@ describe('lib/browsers/cri-client', function () { 'chrome-remote-interface': criImport, }) - getClient = (protocolManager) => { - criClientCreateStub = criClientCreateStub.withArgs({ target: 'http://web/socket/url', onAsynchronousError: onError, onReconnect: undefined, protocolManager }).resolves({ + getClient = ({ protocolManager, fullyManageTabs } = {}) => { + criClientCreateStub = criClientCreateStub.withArgs({ target: 'http://web/socket/url', onAsynchronousError: onError, onReconnect: undefined, protocolManager, fullyManageTabs }).resolves({ send, + on, close, }) - return browserCriClient.BrowserCriClient.create(['127.0.0.1'], PORT, 'Chrome', onError, undefined, protocolManager) + return browserCriClient.BrowserCriClient.create({ hosts: ['127.0.0.1'], port: PORT, browserName: 'Chrome', onAsynchronousError: onError, protocolManager, fullyManageTabs }) } }) @@ -91,7 +100,7 @@ describe('lib/browsers/cri-client', function () { criImport.Version.withArgs({ host: '::1', port: THROWS_PORT, useHostName: true }).resolves({ webSocketDebuggerUrl: 'http://web/socket/url' }) - await browserCriClient.BrowserCriClient.create(['127.0.0.1', '::1'], THROWS_PORT, 'Chrome', onError) + await browserCriClient.BrowserCriClient.create({ hosts: ['127.0.0.1', '::1'], port: THROWS_PORT, browserName: 'Chrome', onAsynchronousError: onError }) expect(criImport.Version).to.be.calledOnce }) @@ -102,7 +111,7 @@ describe('lib/browsers/cri-client', function () { .onSecondCall().returns(100) .onThirdCall().returns(100) - const client = await browserCriClient.BrowserCriClient.create(['127.0.0.1'], THROWS_PORT, 'Chrome', onError) + const client = await browserCriClient.BrowserCriClient.create({ hosts: ['127.0.0.1'], port: THROWS_PORT, browserName: 'Chrome', onAsynchronousError: onError }) expect(client.attachToTargetUrl).to.be.instanceOf(Function) @@ -114,7 +123,7 @@ describe('lib/browsers/cri-client', function () { .onFirstCall().returns(100) .onSecondCall().returns(undefined) - await expect(browserCriClient.BrowserCriClient.create(['127.0.0.1'], THROWS_PORT, 'Chrome', onError)).to.be.rejected + await expect(browserCriClient.BrowserCriClient.create({ hosts: ['127.0.0.1'], port: THROWS_PORT, browserName: 'Chrome', onAsynchronousError: onError })).to.be.rejected expect(criImport.Version).to.be.calledTwice }) @@ -150,7 +159,7 @@ describe('lib/browsers/cri-client', function () { const mockPageClient = {} send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined }).resolves(mockPageClient) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined, fullyManageTabs: undefined, browserClient: { on, send, close } }).resolves(mockPageClient) const browserClient = await getClient() @@ -159,16 +168,18 @@ describe('lib/browsers/cri-client', function () { expect(client).to.be.equal(mockPageClient) }) - it('creates a page client when the passed in url is found and notifies the protocol manager', async function () { + it('creates a page client when the passed in url is found and notifies the protocol manager and fully managed tabs', async function () { const mockPageClient = {} const protocolManager: any = { connectToBrowser: sinon.stub().resolves(), } send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager }).resolves(mockPageClient) + send.withArgs('Target.setDiscoverTargets', { discover: true }) + on.withArgs('Target.targetDestroyed', sinon.match.func) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager, fullyManageTabs: true, browserClient: { on, send, close } }).resolves(mockPageClient) - const browserClient = await getClient(protocolManager) + const browserClient = await getClient({ protocolManager, fullyManageTabs: true }) const client = await browserClient.attachToTargetUrl('http://foo.com') @@ -187,7 +198,7 @@ describe('lib/browsers/cri-client', function () { send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }, { targetId: '3', url: 'http://baz.com' }] }) - criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined }).resolves(mockPageClient) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined, fullyManageTabs: undefined, browserClient: { on, send, close } }).resolves(mockPageClient) const browserClient = await getClient() @@ -205,7 +216,7 @@ describe('lib/browsers/cri-client', function () { send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined }).resolves(mockPageClient) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined, fullyManageTabs: undefined, browserClient: { on, send, close } }).resolves(mockPageClient) const browserClient = await getClient() @@ -226,7 +237,7 @@ describe('lib/browsers/cri-client', function () { send.withArgs('Target.createTarget', { url: 'about:blank' }).resolves(mockUpdatedCurrentlyAttachedTarget) send.withArgs('Target.closeTarget', { targetId: '100' }).resolves() - criClientCreateStub.withArgs({ target: '101', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined }).resolves(mockUpdatedCurrentlyAttachedTarget) + criClientCreateStub.withArgs({ target: '101', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined, fullyManageTabs: undefined }).resolves(mockUpdatedCurrentlyAttachedTarget) const browserClient = await getClient() as any diff --git a/packages/server/test/unit/browsers/cdp_automation_spec.ts b/packages/server/test/unit/browsers/cdp_automation_spec.ts index d645c489a96d..b02d6449ec6f 100644 --- a/packages/server/test/unit/browsers/cdp_automation_spec.ts +++ b/packages/server/test/unit/browsers/cdp_automation_spec.ts @@ -24,6 +24,7 @@ context('lib/browsers/cdp_automation', () => { } const localManager = { protocolEnabled: true, + networkEnableOptions: enabledObject, } as ProtocolManagerShape const localCommandStub = localCommand.withArgs('Network.enable', enabledObject).resolves() @@ -49,6 +50,7 @@ context('lib/browsers/cdp_automation', () => { } const localManager = { protocolEnabled: false, + networkEnableOptions: disabledObject, } as ProtocolManagerShape const localCommandStub = localCommand.withArgs('Network.enable', disabledObject).resolves() @@ -91,7 +93,7 @@ context('lib/browsers/cdp_automation', () => { const startScreencast = this.sendDebuggerCommand.withArgs('Page.startScreencast').resolves() const screencastFrameAck = this.sendDebuggerCommand.withArgs('Page.screencastFrameAck').resolves() - await cdpAutomation.startVideoRecording(writeVideoFrame) + await cdpAutomation.startVideoRecording(writeVideoFrame, {}) expect(startScreencast).to.have.been.calledWith('Page.startScreencast') expect(writeVideoFrame).to.have.been.calledWithMatch((arg) => Buffer.isBuffer(arg) && arg.length > 0) diff --git a/packages/server/test/unit/browsers/cri-client_spec.ts b/packages/server/test/unit/browsers/cri-client_spec.ts index 7b5d90dea71d..61391e890f71 100644 --- a/packages/server/test/unit/browsers/cri-client_spec.ts +++ b/packages/server/test/unit/browsers/cri-client_spec.ts @@ -23,7 +23,7 @@ describe('lib/browsers/cri-client', function () { _notifier: EventEmitter } let onError: sinon.SinonStub - let getClient: () => ReturnType + let getClient: (options?: { host?: string, fullyManageTabs?: boolean }) => ReturnType beforeEach(function () { send = sinon.stub() @@ -49,8 +49,8 @@ describe('lib/browsers/cri-client', function () { 'chrome-remote-interface': criImport, }) - getClient = () => { - return criClient.create({ target: DEBUGGER_URL, onAsynchronousError: onError }) + getClient = ({ host, fullyManageTabs } = {}) => { + return criClient.create({ target: DEBUGGER_URL, host, onAsynchronousError: onError, fullyManageTabs }) } }) @@ -82,9 +82,9 @@ describe('lib/browsers/cri-client', function () { it('rejects if target has crashed', async function () { const command = 'DOM.getDocument' - const client = await getClient() + const client = await getClient({ host: '127.0.0.1', fullyManageTabs: true }) - await criStub.on.withArgs('Inspector.targetCrashed').args[0][1]() + await criStub.on.withArgs('Target.targetCrashed').args[0][1]({ targetId: DEBUGGER_URL }) await expect(client.send(command, { depth: -1 })).to.be.rejectedWith(`${command} will not run as the target browser or tab CRI connection has crashed`) }) diff --git a/packages/server/test/unit/browsers/firefox_spec.ts b/packages/server/test/unit/browsers/firefox_spec.ts index 069573ea399a..b0ab02ffacd3 100644 --- a/packages/server/test/unit/browsers/firefox_spec.ts +++ b/packages/server/test/unit/browsers/firefox_spec.ts @@ -532,6 +532,14 @@ describe('lib/browsers/firefox', () => { on: sinon.stub(), off: sinon.stub(), close: sinon.stub(), + ws: sinon.stub() as any, + queue: { + enableCommands: [], + enqueuedCommands: [], + subscriptions: [], + }, + closed: false, + connected: false, } const browserCriClient: BrowserCriClient = sinon.createStubInstance(BrowserCriClient) @@ -545,7 +553,7 @@ describe('lib/browsers/firefox', () => { expect(actual).to.equal(browserCriClient) expect(browserCriClient.attachToTargetUrl).to.be.calledWith('about:blank') - expect(BrowserCriClient.create).to.be.calledWith(['127.0.0.1', '::1'], port, 'Firefox', null) + expect(BrowserCriClient.create).to.be.calledWith({ hosts: ['127.0.0.1', '::1'], port, browserName: 'Firefox', onAsynchronousError: null }) expect(CdpAutomation.create).to.be.calledWith( criClientStub.send, criClientStub.on, diff --git a/packages/types/src/protocol.ts b/packages/types/src/protocol.ts index e1c8e425201c..e6402ab51f28 100644 --- a/packages/types/src/protocol.ts +++ b/packages/types/src/protocol.ts @@ -85,6 +85,7 @@ export type ProtocolManagerOptions = { export interface ProtocolManagerShape extends AppCaptureProtocolCommon { protocolEnabled: boolean + networkEnableOptions?: { maxTotalBufferSize: number, maxResourceBufferSize: number, maxPostDataSize: number } setupProtocol(script: string, options: ProtocolManagerOptions): Promise beforeSpec (spec: { instanceId: string }): void reportNonFatalErrors (clientMetadata: any): Promise diff --git a/system-tests/projects/e2e/cypress/e2e/web_worker.cy.js b/system-tests/projects/e2e/cypress/e2e/web_worker.cy.js new file mode 100644 index 000000000000..997341952fd0 --- /dev/null +++ b/system-tests/projects/e2e/cypress/e2e/web_worker.cy.js @@ -0,0 +1,34 @@ +const webWorker = (win) => { + return new Promise((resolve) => { + win.worker.onmessage = (e) => { + if (e.data.foo === 'bar2') { + resolve(win) + } + } + + win.worker.postMessage({ + foo: 'bar', + }) + }) +} + +const sharedWorker = (win) => { + return new Promise((resolve) => { + win.sharedWorker.port.onmessage = (e) => { + if (e.data.foo === 'baz2') { + resolve(win) + } + } + + win.sharedWorker.port.postMessage({ + foo: 'baz', + }) + }) +} + +// Timeout of 1900 will ensure that the proxy correlation timeout is not hit +it('loads web workers', { defaultCommandTimeout: 1900 }, () => { + cy.visit('https://localhost:1515/web_worker.html') + .then(webWorker) + .then(sharedWorker) +}) diff --git a/system-tests/projects/e2e/shared-worker.js b/system-tests/projects/e2e/shared-worker.js new file mode 100644 index 000000000000..8db062f6ecd9 --- /dev/null +++ b/system-tests/projects/e2e/shared-worker.js @@ -0,0 +1,14 @@ +// eslint-disable-next-line no-undef +importScripts('/sw.js') + +self.addEventListener('connect', (event) => { + const port = event.ports[0] + + port.onmessage = (e) => { + if (e.data.foo === 'baz') { + port.postMessage({ + foo: 'baz2', + }) + } + } +}) diff --git a/system-tests/projects/e2e/web-worker.js b/system-tests/projects/e2e/web-worker.js new file mode 100644 index 000000000000..31781f7a4bb9 --- /dev/null +++ b/system-tests/projects/e2e/web-worker.js @@ -0,0 +1,10 @@ +// eslint-disable-next-line no-undef +importScripts('/ww.js') + +onmessage = (e) => { + if (e.data.foo === 'bar') { + postMessage({ + foo: 'bar2', + }) + } +} diff --git a/system-tests/projects/e2e/web_worker.html b/system-tests/projects/e2e/web_worker.html new file mode 100644 index 000000000000..04dd74fa682f --- /dev/null +++ b/system-tests/projects/e2e/web_worker.html @@ -0,0 +1,13 @@ + + + + + + + +

hi

+ + diff --git a/system-tests/test/service_worker_spec.js b/system-tests/test/service_worker_spec.js index 5969288d433f..5d4906926f9f 100644 --- a/system-tests/test/service_worker_spec.js +++ b/system-tests/test/service_worker_spec.js @@ -31,7 +31,7 @@ const onServer = function (app) { }) } -describe('e2e browser reset', () => { +describe('e2e service worker', () => { systemTests.setup({ servers: [{ https: true, diff --git a/system-tests/test/web_worker_spec.js b/system-tests/test/web_worker_spec.js new file mode 100644 index 000000000000..f2c519de65e5 --- /dev/null +++ b/system-tests/test/web_worker_spec.js @@ -0,0 +1,53 @@ +const express = require('express') +const Fixtures = require('../lib/fixtures') +const systemTests = require('../lib/system-tests').default + +const e2ePath = Fixtures.projectPath('e2e') + +let requestsForWebWorker = 0 +let requestsForSharedWorker = 0 + +const onServer = function (app) { + app.use(express.static(e2ePath, { + // force caching to happen + maxAge: 3600000, + })) + + app.get('/ww.js', (req, res) => { + requestsForWebWorker += 1 + + res.set('Content-Type', 'application/javascript') + res.set('Mime-Type', 'application/javascript') + + return res.send('const x = 1') + }) + + app.get('/sw.js', (req, res) => { + requestsForSharedWorker += 1 + + res.set('Content-Type', 'application/javascript') + res.set('Mime-Type', 'application/javascript') + + return res.send('const x = 1') + }) +} + +describe('e2e web worker', () => { + systemTests.setup({ + servers: [{ + https: true, + port: 1515, + onServer, + }], + }) + + systemTests.it('executes one spec with a web and shared worker', { + project: 'e2e', + spec: 'web_worker.cy.js', + onRun: async (exec, browser) => { + await exec() + expect(requestsForWebWorker).to.eq(1) + expect(requestsForSharedWorker).to.eq(1) + }, + }) +}) From 7f01e8dffcc4c4310890b374f989d155e8c35720 Mon Sep 17 00:00:00 2001 From: Matt Schile Date: Tue, 24 Oct 2023 10:32:54 -0600 Subject: [PATCH 20/47] chore: 13.3.3 release updates (#28129) --- cli/CHANGELOG.md | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 43880abc0b8d..a84836124cf5 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,12 +1,12 @@ ## 13.3.3 -_Released 10/24/2023 (PENDING)_ +_Released 10/24/2023_ **Bugfixes:** - Fixed a performance regression in `13.3.1` with proxy correlation timeouts and requests issued from web and shared workers. Fixes [#28104](https://github.com/cypress-io/cypress/issues/28104). -- Fixed a performance problem with proxy correlation when requests get aborted and then get miscorrelated with follow up requests. Fixed in [#28094](https://github.com/cypress-io/cypress/pull/28094). +- Fixed a performance problem with proxy correlation when requests get aborted and then get miscorrelated with follow up requests. Addressed in [#28094](https://github.com/cypress-io/cypress/pull/28094). - Fixed a regression in [10.0.0](#10.0.0), where search would not find a spec if the file name contains "-" or "\_", but search prompt contains " " instead (e.g. search file "spec-file.cy.ts" with prompt "spec file"). Fixes [#25303](https://github.com/cypress-io/cypress/issues/25303). ## 13.3.2 diff --git a/package.json b/package.json index f1177034550a..4a6e6e9b2ccd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cypress", - "version": "13.3.2", + "version": "13.3.3", "description": "Cypress is a next generation front end testing tool built for the modern web", "private": true, "scripts": { From 058f3a80b033f16bf57f50ee78f63d8b82e75851 Mon Sep 17 00:00:00 2001 From: Matt Schile Date: Tue, 24 Oct 2023 11:54:22 -0600 Subject: [PATCH 21/47] test: fix spec search in windows (#28130) --- packages/app/cypress/e2e/specs_list_e2e.cy.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/app/cypress/e2e/specs_list_e2e.cy.ts b/packages/app/cypress/e2e/specs_list_e2e.cy.ts index 38db09b577f0..6d05d6c3e909 100644 --- a/packages/app/cypress/e2e/specs_list_e2e.cy.ts +++ b/packages/app/cypress/e2e/specs_list_e2e.cy.ts @@ -1,5 +1,4 @@ import { getPathForPlatform } from '../../src/paths' -import path from 'path' describe('App: Spec List (E2E)', () => { const launchApp = (specFilter?: string) => { @@ -289,7 +288,7 @@ describe('App: Spec List (E2E)', () => { cy.findAllByTestId('spec-list-directory') .should('have.length', 1) - .and('contain', path.join('cypress', 'e2e', 'a-b_c')) + .and('contain', 'a-b_c') cy.findByText('No specs matched your search:').should('not.be.visible') }) @@ -299,7 +298,7 @@ describe('App: Spec List (E2E)', () => { cy.findAllByTestId('spec-list-directory') .should('have.length', 1) - .and('contain', path.join('cypress', 'e2e', 'a-b_c')) + .and('contain', 'a-b_c') cy.findByText('No specs matched your search:').should('not.be.visible') }) @@ -309,7 +308,7 @@ describe('App: Spec List (E2E)', () => { cy.findAllByTestId('spec-list-directory') .should('have.length', 1) - .and('contain', path.join('cypress', 'e2e', 'a-b_c')) + .and('contain', 'a-b_c') cy.findByText('No specs matched your search:').should('not.be.visible') }) From 186f725da4dddf435954751b10f3bc866ee876a6 Mon Sep 17 00:00:00 2001 From: Surav Shrestha <148626286+shresthasurav@users.noreply.github.com> Date: Wed, 25 Oct 2023 03:08:04 +0545 Subject: [PATCH 22/47] docs: fix typos in guides (#28120) --- guides/graphql-subscriptions.md | 2 +- guides/writing-cross-platform-javascript.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/guides/graphql-subscriptions.md b/guides/graphql-subscriptions.md index 47ba0a66f585..a346d34299a8 100644 --- a/guides/graphql-subscriptions.md +++ b/guides/graphql-subscriptions.md @@ -109,7 +109,7 @@ browserStatusChange () { ``` - [API Docs](https://github.com/enisdenjo/graphql-ws/tree/master/docs) -- [Transport layer protcol specification](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) +- [Transport layer protocol specification](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) ### Testing diff --git a/guides/writing-cross-platform-javascript.md b/guides/writing-cross-platform-javascript.md index b2c4dbd9534e..8148bc7d12fa 100644 --- a/guides/writing-cross-platform-javascript.md +++ b/guides/writing-cross-platform-javascript.md @@ -7,7 +7,7 @@ Cypress works on Linux, macOS and Windows. This includes both installing from np Throughout the code base, we access the file system in various ways, and need to be conscious of how we do so to ensure Cypress can be used and developed seamlessly on multiple platforms. One thing to keep in mind is file paths and file separators. macOS and Linux systems use `/`, and Windows uses `\`. -As a general rule, we want to use **native paths** where possible. There are a few reasons for this. Whereever we display a file path, we want to use the native file separator, since that is what the user will expect on their platform. In general, we can use the Node.js `path` module to handle this: +As a general rule, we want to use **native paths** where possible. There are a few reasons for this. Wherever we display a file path, we want to use the native file separator, since that is what the user will expect on their platform. In general, we can use the Node.js `path` module to handle this: ```js // on linux-like systems From 09fa9d7a6b44c7c1f11e796399f1b0e4835e68db Mon Sep 17 00:00:00 2001 From: Adam Stone-Lord Date: Wed, 25 Oct 2023 11:36:51 -0400 Subject: [PATCH 23/47] chore: update homepage field to point to marketing site (#28133) --- cli/__snapshots__/build_spec.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/__snapshots__/build_spec.js b/cli/__snapshots__/build_spec.js index 751f417d0e3a..2f0a3189ea96 100644 --- a/cli/__snapshots__/build_spec.js +++ b/cli/__snapshots__/build_spec.js @@ -4,7 +4,7 @@ exports['package.json build outputs expected properties 1'] = { 'version': 'x.y.z', 'buildInfo': 'replaced by normalizePackageJson', 'description': 'Cypress is a next generation front end testing tool built for the modern web', - 'homepage': 'https://github.com/cypress-io/cypress', + 'homepage': 'https://cypress.io', 'license': 'MIT', 'bugs': { 'url': 'https://github.com/cypress-io/cypress/issues', diff --git a/package.json b/package.json index 4a6e6e9b2ccd..73bfed548768 100644 --- a/package.json +++ b/package.json @@ -221,7 +221,7 @@ "type": "git", "url": "https://github.com/cypress-io/cypress.git" }, - "homepage": "https://github.com/cypress-io/cypress", + "homepage": "https://cypress.io", "bugs": { "url": "https://github.com/cypress-io/cypress/issues" }, From 15f730007f10705db8c6f4a3de4ddefdfc930df1 Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Thu, 26 Oct 2023 09:16:20 -0500 Subject: [PATCH 24/47] fix: issue with service worker attachments (#28147) Co-authored-by: Emily Rohrbough --- cli/CHANGELOG.md | 8 ++++++ .../server/lib/browsers/browser-cri-client.ts | 15 +++++++---- packages/server/lib/browsers/cri-client.ts | 19 ++++++++------ .../unit/browsers/browser-cri-client_spec.ts | 25 +++++++++++++++++++ .../test/unit/browsers/cri-client_spec.ts | 8 ++++++ 5 files changed, 63 insertions(+), 12 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index a84836124cf5..10d035262a2e 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,4 +1,12 @@ +## 13.3.4 + +_Released 11/7/2023 (PENDING)_ + +**Bugfixes:** + +- Fixed a regression in [`13.3.2`](https://docs.cypress.io/guides/references/changelog/13.3.2) where loading a service worker and immediately reloading the page can cause a crash. Fixes [#28141](https://github.com/cypress-io/cypress/issues/28141). + ## 13.3.3 _Released 10/24/2023_ diff --git a/packages/server/lib/browsers/browser-cri-client.ts b/packages/server/lib/browsers/browser-cri-client.ts index 09a61720ffac..b1b90363a72c 100644 --- a/packages/server/lib/browsers/browser-cri-client.ts +++ b/packages/server/lib/browsers/browser-cri-client.ts @@ -198,12 +198,17 @@ export class BrowserCriClient { // The basic approach here is we attach to targets and enable network traffic // We must attach in a paused state so that we can enable network traffic before the target starts running. browserClient.on('Target.attachedToTarget', async (event) => { - if (event.targetInfo.type !== 'page') { - await browserClient.send('Network.enable', protocolManager?.networkEnableOptions ?? DEFAULT_NETWORK_ENABLE_OPTIONS, event.sessionId) - } + try { + if (event.targetInfo.type !== 'page') { + await browserClient.send('Network.enable', protocolManager?.networkEnableOptions ?? DEFAULT_NETWORK_ENABLE_OPTIONS, event.sessionId) + } - if (event.waitingForDebugger) { - await browserClient.send('Runtime.runIfWaitingForDebugger', undefined, event.sessionId) + if (event.waitingForDebugger) { + await browserClient.send('Runtime.runIfWaitingForDebugger', undefined, event.sessionId) + } + } catch (error) { + // it's possible that the target was closed before we could enable network and continue, in that case, just ignore + debug('error attaching to target browser', error) } }) diff --git a/packages/server/lib/browsers/cri-client.ts b/packages/server/lib/browsers/cri-client.ts index 2db9a0ce6996..0c61a887433d 100644 --- a/packages/server/lib/browsers/cri-client.ts +++ b/packages/server/lib/browsers/cri-client.ts @@ -285,13 +285,18 @@ export const create = async ({ if (fullyManageTabs) { cri.on('Target.attachedToTarget', async (event) => { - // Service workers get attached at the page and browser level. We only want to handle them at the browser level - if (event.targetInfo.type !== 'service_worker' && event.targetInfo.type !== 'page') { - await cri.send('Network.enable', protocolManager?.networkEnableOptions ?? DEFAULT_NETWORK_ENABLE_OPTIONS, event.sessionId) - } - - if (event.waitingForDebugger) { - await cri.send('Runtime.runIfWaitingForDebugger', undefined, event.sessionId) + try { + // Service workers get attached at the page and browser level. We only want to handle them at the browser level + if (event.targetInfo.type !== 'service_worker' && event.targetInfo.type !== 'page') { + await cri.send('Network.enable', protocolManager?.networkEnableOptions ?? DEFAULT_NETWORK_ENABLE_OPTIONS, event.sessionId) + } + + if (event.waitingForDebugger) { + await cri.send('Runtime.runIfWaitingForDebugger', undefined, event.sessionId) + } + } catch (error) { + // it's possible that the target was closed before we could enable network and continue, in that case, just ignore + debug('error attaching to target cri', error) } }) diff --git a/packages/server/test/unit/browsers/browser-cri-client_spec.ts b/packages/server/test/unit/browsers/browser-cri-client_spec.ts index fc4656f6f8bd..4beed34046f2 100644 --- a/packages/server/test/unit/browsers/browser-cri-client_spec.ts +++ b/packages/server/test/unit/browsers/browser-cri-client_spec.ts @@ -187,6 +187,31 @@ describe('lib/browsers/cri-client', function () { expect(protocolManager.connectToBrowser).to.be.calledWith(client) }) + it('creates a page client when the passed in url is found and notifies the protocol manager and fully managed tabs and attaching to target throws', async function () { + const mockPageClient = {} + const protocolManager: any = { + connectToBrowser: sinon.stub().resolves(), + } + + send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) + send.withArgs('Target.setDiscoverTargets', { discover: true }) + on.withArgs('Target.targetDestroyed', sinon.match.func) + + send.withArgs('Network.enable').throws(new Error('ProtocolError: Inspected target navigated or closed')) + + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager, fullyManageTabs: true, browserClient: { on, send, close } }).resolves(mockPageClient) + + const browserClient = await getClient({ protocolManager, fullyManageTabs: true }) + + const client = await browserClient.attachToTargetUrl('http://foo.com') + + expect(client).to.be.equal(mockPageClient) + expect(protocolManager.connectToBrowser).to.be.calledWith(client) + + // This would throw if the error was not caught + await on.withArgs('Target.attachedToTarget').args[0][1]({ targetInfo: { type: 'worker' } }) + }) + it('retries when the passed in url is not found', async function () { sinon.stub(protocol, '_getDelayMsForRetry') .onFirstCall().returns(100) diff --git a/packages/server/test/unit/browsers/cri-client_spec.ts b/packages/server/test/unit/browsers/cri-client_spec.ts index 61391e890f71..e76731e64b39 100644 --- a/packages/server/test/unit/browsers/cri-client_spec.ts +++ b/packages/server/test/unit/browsers/cri-client_spec.ts @@ -88,6 +88,14 @@ describe('lib/browsers/cri-client', function () { await expect(client.send(command, { depth: -1 })).to.be.rejectedWith(`${command} will not run as the target browser or tab CRI connection has crashed`) }) + it('does not reject if attachToTarget work throws', async function () { + criStub.send.withArgs('Network.enable').throws(new Error('ProtocolError: Inspected target navigated or closed')) + await getClient({ host: '127.0.0.1', fullyManageTabs: true }) + + // This would throw if the error was not caught + await criStub.on.withArgs('Target.attachedToTarget').args[0][1]({ targetInfo: { type: 'worker' } }) + }) + context('retries', () => { ([ 'WebSocket is not open', From 80cc83d0aabd9545aaaf1cf7c78d1933a463b694 Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Thu, 26 Oct 2023 09:17:33 -0500 Subject: [PATCH 25/47] chore: fix test flake with shared workers and correlating on failures (#28132) Co-authored-by: Cacie Prins --- packages/server/test/integration/http_requests_spec.js | 3 ++- system-tests/projects/e2e/shared-worker.js | 10 +++++----- system-tests/projects/e2e/web-worker.js | 6 +++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/server/test/integration/http_requests_spec.js b/packages/server/test/integration/http_requests_spec.js index 5eed3127763b..1fa37e332fe5 100644 --- a/packages/server/test/integration/http_requests_spec.js +++ b/packages/server/test/integration/http_requests_spec.js @@ -1035,7 +1035,7 @@ describe('Routes', () => { this.networkProxy.setPreRequestTimeout(50) // If this takes longer than the Promise.delay and the prerequest timeout then the second // call has hit the prerequest timeout which is a problem - this.timeout(150) + this.timeout(900) nock(this.server.remoteStates.current().origin) .get('/') @@ -1057,6 +1057,7 @@ describe('Routes', () => { // Wait 100 ms to make sure the request times out return Promise.delay(100).then(() => { + this.networkProxy.setPreRequestTimeout(1000) nock(this.server.remoteStates.current().origin) .get('/') .once() diff --git a/system-tests/projects/e2e/shared-worker.js b/system-tests/projects/e2e/shared-worker.js index 8db062f6ecd9..1ff369a5e391 100644 --- a/system-tests/projects/e2e/shared-worker.js +++ b/system-tests/projects/e2e/shared-worker.js @@ -1,14 +1,14 @@ -// eslint-disable-next-line no-undef -importScripts('/sw.js') - -self.addEventListener('connect', (event) => { +self.onconnect = (event) => { const port = event.ports[0] port.onmessage = (e) => { + // eslint-disable-next-line no-undef + importScripts('/sw.js') + if (e.data.foo === 'baz') { port.postMessage({ foo: 'baz2', }) } } -}) +} diff --git a/system-tests/projects/e2e/web-worker.js b/system-tests/projects/e2e/web-worker.js index 31781f7a4bb9..a086e041b114 100644 --- a/system-tests/projects/e2e/web-worker.js +++ b/system-tests/projects/e2e/web-worker.js @@ -1,7 +1,7 @@ -// eslint-disable-next-line no-undef -importScripts('/ww.js') - onmessage = (e) => { + // eslint-disable-next-line no-undef + importScripts('/ww.js') + if (e.data.foo === 'bar') { postMessage({ foo: 'bar2', From 201e9f366e2a297b4e10bb6ea3c4ebd5d37ca3bb Mon Sep 17 00:00:00 2001 From: Bill Glesias Date: Thu, 26 Oct 2023 14:06:14 -0400 Subject: [PATCH 26/47] feat: experimental retries (#27930) * chore: set up feature/test-burn-in feature branch * feat: add burnIn Configuration option (currently a no-op) (#27377) * feat: add the burnIn Configuration to the config package. Option currently is a no-op * chore: make burn in experimental * chore: set experimentalBurnIn to false by default * feat: add new experimental retries configuration (#27412) * feat: implement the experimental retries configuration options to pair with test burn in * [run ci] * fix cache invalidation [run ci] * fix snapshot added in v13 for module api to include test burn in experimentalflag * chore: fix merge conflict * chore: add burnInTestAction capability (#27768) * add burnInTestAction capability * feat: add burn in capability for cloud * chore: fix snapshot for record_spec * feat: implement experimental retries (#27826) * chore: format the retries/runner snapshot files to make diff easier * feat: implement experimentalRetries strategies 'detect-flake-and-pass-on-threshold' and 'detect-flake-but-always-fail'. This should not be a breaking change, though it does modify mocha and the test object even when the experiment is not configured. This is to exercise the system and make sure things still work as expected even when we go GA. Test updates will follow in following commits. * chore: update snapshots from system tests and cy-in-cy tests that now have the cypress test metadata property _cypressTestStatusInfo. tests have been added in the fail-with-[before|after]each specs to visually see the suite being skipped when developing. * chore: add cy-in-cy tests to verify reporter behavior for pass/fail tests, as well as new mocha snapshots to verify attempts. New tests were needed for this as the 'retries' option in testConfigOverrides currently is and will be invalid for experiment and will function as an override. tests run in the cy-in-cy tests are using globally configured experimentalRetries for the given tested project, which showcases the different behavior between attempts/retries and pass/fail status. * chore: add unit test like driver test to verify the test object in mocha is decorated/handled properly in calculateTestStatus * chore: add sanity system tests to verify console reporter output for experimental retries logic. Currently there is a bug in the reporter where the logged status doesnt wait for the aftereach to complete, which impacts the total exitCode and printed status. * fix: aftereach console output. make sure to fail the test in the appropriate spot in runner.ts and not prematurely, which in turn updates the snapshots for cy-in-cy as the fail event comes later." * chore: address comments from code review * fix: make sure hook failures print outer status + attempts when the error is the hook itself. * chore: improve types within calculateTestStatus inside mocha.ts * Revert "feat: add burnIn Configuration option (currently a no-op) (#27377)" This reverts commit c42844307946f438a7369b381a702f121ff17657. * Revert "chore: add burnInTestAction capability (#27768)" This reverts commit ae3df1a505ed16d29e524a941078ea28b0a94b3c. * chore: run snapshot and binary jobs against experimental retries feature branch * chore: add changelog entry (wip) * Revert "fix snapshot added in v13 for module api to include test burn in experimentalflag" This reverts commit bb5046c91e023930341ad2fcc2372ff18573dec6. * Fix system tests * Clear CircleCI cache * Normalize retries config for test execution * Fixed some unit tests * update snapshots for newer test metadata * Fix cy-in-cy snapshots * update snapshots * bump cache version * chore: ensure legacy retry overrides work; reject exp. retries overrides (#28045) * update changelog * flip if statement in experimental retries option validation * refactor invalid experimental retry override for more useful error msg * revert testConfigOverrides snapshot * update snapshots for test override sys test * Update packages/config/src/validation.ts Co-authored-by: Chris Breiding * succinct changelog entry; links to docs for details * testConfigOverride system test snapshots * Update .github/workflows/update_v8_snapshot_cache.yml Co-authored-by: Ryan Manuel * Update cli/CHANGELOG.md Co-authored-by: Ryan Manuel * Update packages/driver/src/cypress.ts Co-authored-by: Ryan Manuel * updating cache-version * improve typescript usage when appending experimental retry options to experiments in Experimenets.vue * Revert "improve typescript usage when appending experimental retry options to experiments in Experimenets.vue" This reverts commit b459aba882a16e64caf2b6d4f9326c875106cdd2. * refactor test config override validation for experimental retry subkeys * account for error throw differences in browsers in system tests * bump circle cache * bump circle cache again --------- Co-authored-by: astone123 Co-authored-by: mabela416 Co-authored-by: Muaz Othman Co-authored-by: Muaz Othman Co-authored-by: Cacie Prins Co-authored-by: Cacie Prins Co-authored-by: Chris Breiding Co-authored-by: Ryan Manuel Co-authored-by: Matthew Schile --- .circleci/cache-version.txt | 2 +- .circleci/workflows.yml | 13 +- cli/CHANGELOG.md | 9 +- cli/types/cypress.d.ts | 26 +- cli/types/tests/cypress-tests.ts | 33 + ...ries.experimentalRetries.mochaEvents.cy.ts | 413 + ...perimentalRetries.mochaEvents.snapshots.ts | 54372 ++++++++++++++++ .../runner/retries.mochaEvents.snapshots.ts | 12248 ++-- ...nner.experimentalRetries.mochaEvents.cy.ts | 173 + ...perimentalRetries.mochaEvents.snapshots.ts | 30737 +++++++++ .../runner/runner.mochaEvents.snapshots.ts | 7037 +- .../e2e/runner/support/mochaEventsUtils.ts | 4 + .../cypress/e2e/runner/support/spec-loader.ts | 13 +- packages/app/src/runner/event-manager.ts | 7 +- .../app/src/settings/project/Experiments.vue | 24 +- .../__snapshots__/validation.spec.ts.js | 238 +- packages/config/src/browser.ts | 20 + packages/config/src/options.ts | 22 + packages/config/src/validation.ts | 74 +- packages/config/test/project/utils.spec.ts | 4 +- packages/config/test/validation.spec.ts | 283 + .../e2e/util/mocha_custom_methods.cy.js | 308 + packages/driver/patches/mocha+7.0.1.dev.patch | 85 + packages/driver/src/cypress.ts | 11 +- packages/driver/src/cypress/error_messages.ts | 4 + packages/driver/src/cypress/mocha.ts | 165 + packages/driver/src/cypress/runner.ts | 130 +- packages/driver/src/util/config.ts | 4 +- packages/driver/types/internal-types.d.ts | 9 + .../frontend-shared/src/locales/en-US.json | 10 + .../reporter/src/attempts/attempt-model.ts | 5 + packages/reporter/src/lib/events.ts | 4 +- packages/reporter/src/test/test-model.ts | 22 +- packages/server/lib/project-base.ts | 2 +- packages/server/lib/reporter.js | 209 +- packages/server/test/unit/config_spec.js | 2 +- .../experimental_retries.spec.ts.js | 2302 + system-tests/__snapshots__/protocol_spec.js | 276 +- .../testConfigOverrides_spec.ts.js | 304 +- ...y-from-afterEach.retries.mochaEvents.cy.js | 37 + ...-from-beforeEach.retries.mochaEvents.cy.js | 20 + ...etry-from-before.retries.mochaEvents.cy.js | 17 + .../does-not-serialize-dom-error.cy.js | 4 + .../simple-fail.retries.mochaEvents.cy.js | 10 + ...retry-with-hooks.retries.mochaEvents.cy.js | 15 + ...-retry-with-only.retries.mochaEvents.cy.js | 20 + ...tests-with-retry.retries.mochaEvents.cy.js | 19 + .../fail-with-afterEach.mochaEvents.cy.js | 1 + .../fail-with-beforeEach.mochaEvents.cy.js | 1 + .../cypress.config.js | 15 + .../package.json | 3 + .../cypress.config.js | 15 + .../package.json | 3 + .../cypress.config.js | 15 + .../detect-flake-but-always-fail/package.json | 3 + .../cypress-experimental-retries.config.js | 23 + .../cypress-legacy-retries.config.js | 18 + .../experimental-retries/cypress.config.js | 14 + .../cypress/e2e/always-fails.cy.js | 5 + .../cypress/e2e/always-passes.cy.js | 5 + .../cypress/e2e/deterministic-flaky.cy.js | 15 + .../override-with-experimental-retries.cy.js | 51 + .../e2e/override-with-legacy-retries.cy.js | 16 + .../test/experimental_retries.spec.ts | 309 + system-tests/test/testConfigOverrides_spec.ts | 20 + 65 files changed, 100853 insertions(+), 9425 deletions(-) create mode 100644 packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts create mode 100644 packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.snapshots.ts create mode 100644 packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.cy.ts create mode 100644 packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.snapshots.ts create mode 100644 packages/driver/cypress/e2e/util/mocha_custom_methods.cy.js create mode 100644 system-tests/__snapshots__/experimental_retries.spec.ts.js create mode 100644 system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/can-retry-from-afterEach.retries.mochaEvents.cy.js create mode 100644 system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/can-retry-from-beforeEach.retries.mochaEvents.cy.js create mode 100644 system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/cant-retry-from-before.retries.mochaEvents.cy.js create mode 100644 system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/does-not-serialize-dom-error.cy.js create mode 100644 system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/simple-fail.retries.mochaEvents.cy.js create mode 100644 system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/test-retry-with-hooks.retries.mochaEvents.cy.js create mode 100644 system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/test-retry-with-only.retries.mochaEvents.cy.js create mode 100644 system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/three-tests-with-retry.retries.mochaEvents.cy.js create mode 100644 system-tests/projects/detect-flake-and-pass-on-threshold/cypress.config.js create mode 100644 system-tests/projects/detect-flake-and-pass-on-threshold/package.json create mode 100644 system-tests/projects/detect-flake-but-always-fail-stop-any-passed/cypress.config.js create mode 100644 system-tests/projects/detect-flake-but-always-fail-stop-any-passed/package.json create mode 100644 system-tests/projects/detect-flake-but-always-fail/cypress.config.js create mode 100644 system-tests/projects/detect-flake-but-always-fail/package.json create mode 100644 system-tests/projects/experimental-retries/cypress-experimental-retries.config.js create mode 100644 system-tests/projects/experimental-retries/cypress-legacy-retries.config.js create mode 100644 system-tests/projects/experimental-retries/cypress.config.js create mode 100644 system-tests/projects/experimental-retries/cypress/e2e/always-fails.cy.js create mode 100644 system-tests/projects/experimental-retries/cypress/e2e/always-passes.cy.js create mode 100644 system-tests/projects/experimental-retries/cypress/e2e/deterministic-flaky.cy.js create mode 100644 system-tests/projects/experimental-retries/cypress/e2e/override-with-experimental-retries.cy.js create mode 100644 system-tests/projects/experimental-retries/cypress/e2e/override-with-legacy-retries.cy.js create mode 100644 system-tests/test/experimental_retries.spec.ts diff --git a/.circleci/cache-version.txt b/.circleci/cache-version.txt index 27ba28bd197a..7cb1b8d30414 100644 --- a/.circleci/cache-version.txt +++ b/.circleci/cache-version.txt @@ -1,3 +1,3 @@ # Bump this version to force CI to re-create the cache from scratch. -10-18-23 +10-25-23.1 diff --git a/.circleci/workflows.yml b/.circleci/workflows.yml index 5211a72cd1af..27157262ca5a 100644 --- a/.circleci/workflows.yml +++ b/.circleci/workflows.yml @@ -29,6 +29,7 @@ mainBuildFilters: &mainBuildFilters - develop - /^release\/\d+\.\d+\.\d+$/ # use the following branch as well to ensure that v8 snapshot cache updates are fully tested + - 'feature/experimental-retries' - 'publish-binary' - 'ryanm/fix/better-sqlite3' @@ -41,6 +42,9 @@ macWorkflowFilters: &darwin-workflow-filters - equal: [ develop, << pipeline.git.branch >> ] # use the following branch as well to ensure that v8 snapshot cache updates are fully tested - equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ] + - equal: [ 'feature/experimental-retries', << pipeline.git.branch >> ] + - equal: [ 'chore/update_webpack_deps_to_latest_webpack4_compat', << pipeline.git.branch >> ] + - equal: [ 'lerna-optimize-tasks', << pipeline.git.branch >> ] - equal: [ 'ryanm/fix/better-sqlite3', << pipeline.git.branch >> ] - matches: pattern: /^release\/\d+\.\d+\.\d+$/ @@ -52,6 +56,10 @@ linuxArm64WorkflowFilters: &linux-arm64-workflow-filters - equal: [ develop, << pipeline.git.branch >> ] # use the following branch as well to ensure that v8 snapshot cache updates are fully tested - equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ] + - equal: [ 'feature/experimental-retries', << pipeline.git.branch >> ] + - equal: [ 'chore/update_webpack_deps_to_latest_webpack4_compat', << pipeline.git.branch >> ] + - equal: [ 'chore/bump_loaders_and_optimize_webpack', << pipeline.git.branch >> ] + - equal: [ 'lerna-optimize-tasks', << pipeline.git.branch >> ] - equal: [ 'ryanm/fix/better-sqlite3', << pipeline.git.branch >> ] - matches: pattern: /^release\/\d+\.\d+\.\d+$/ @@ -75,6 +83,9 @@ windowsWorkflowFilters: &windows-workflow-filters - equal: [ develop, << pipeline.git.branch >> ] # use the following branch as well to ensure that v8 snapshot cache updates are fully tested - equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ] + - equal: [ 'feature/experimental-retries', << pipeline.git.branch >> ] + - equal: [ 'chore/update_webpack_deps_to_latest_webpack4_compat', << pipeline.git.branch >> ] + - equal: [ 'lerna-optimize-tasks', << pipeline.git.branch >> ] - equal: [ 'ryanm/fix/better-sqlite3', << pipeline.git.branch >> ] - matches: pattern: /^release\/\d+\.\d+\.\d+$/ @@ -145,7 +156,7 @@ commands: name: Set environment variable to determine whether or not to persist artifacts command: | echo "Setting SHOULD_PERSIST_ARTIFACTS variable" - echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "publish-binary" && "$CIRCLE_BRANCH" != "update-v8-snapshot-cache-on-develop" && "$CIRCLE_BRANCH" != "ryanm/fix/better-sqlite3" ]]; then + echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "publish-binary" && "$CIRCLE_BRANCH" != "lerna-optimize-tasks" && "$CIRCLE_BRANCH" != "feature/experimental-retries" ]]; then export SHOULD_PERSIST_ARTIFACTS=true fi' >> "$BASH_ENV" # You must run `setup_should_persist_artifacts` command and be using bash before running this command diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 10d035262a2e..ff15f5c7c1f2 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,7 +1,12 @@ -## 13.3.4 -_Released 11/7/2023 (PENDING)_ +## 13.4.0 + +_Released 10/25/2023 (PENDING)_ + +**Features:** + +- Introduced experimental configuration options for advanced retry logic: adds `experimentalStrategy` and `experimentalOptions` keys to the `retry` configuration key. See [Experimental Flake Detection Features](https://docs.cypress.io/guides/references/experiments/#Experimental-Flake-Detection-Features) in the documentation. Addressed in [#27930](https://github.com/cypress-io/cypress/pull/27930). **Bugfixes:** diff --git a/cli/types/cypress.d.ts b/cli/types/cypress.d.ts index dd12cd0c6a5d..cf0604f27902 100644 --- a/cli/types/cypress.d.ts +++ b/cli/types/cypress.d.ts @@ -2851,6 +2851,30 @@ declare namespace Cypress { certs: PEMCert[] | PFXCert[] } + type RetryStrategyWithModeSpecs = RetryStrategy & { + openMode: boolean; // defaults to false + runMode: boolean; // defaults to true + } + + type RetryStrategy = + | RetryStrategyDetectFlakeAndPassOnThresholdType + | RetryStrategyDetectFlakeButAlwaysFailType + + interface RetryStrategyDetectFlakeAndPassOnThresholdType { + experimentalStrategy: "detect-flake-and-pass-on-threshold" + experimentalOptions?: { + maxRetries: number; // defaults to 2 if experimentalOptions is not provided, must be a whole number > 0 + passesRequired: number; // defaults to 2 if experimentalOptions is not provided, must be a whole number > 0 and <= maxRetries + } + } + + interface RetryStrategyDetectFlakeButAlwaysFailType { + experimentalStrategy: "detect-flake-but-always-fail" + experimentalOptions?: { + maxRetries: number; // defaults to 2 if experimentalOptions is not provided, must be a whole number > 0 + stopIfAnyPassed: boolean; // defaults to false if experimentalOptions is not provided + } + } interface ResolvedConfigOptions { /** * Url used as prefix for [cy.visit()](https://on.cypress.io/visit) or [cy.request()](https://on.cypress.io/request) command's url @@ -3122,7 +3146,7 @@ declare namespace Cypress { * To enable test retries only in runMode, set e.g. `{ openMode: null, runMode: 2 }` * @default null */ - retries: Nullable, openMode?: Nullable }> + retries: Nullable, openMode?: Nullable }) | RetryStrategyWithModeSpecs> /** * Enables including elements within the shadow DOM when using querying * commands (e.g. cy.get(), cy.find()). Can be set globally in cypress.config.{js,ts,mjs,cjs}, diff --git a/cli/types/tests/cypress-tests.ts b/cli/types/tests/cypress-tests.ts index 035ec815d7d1..b2b5393e4d11 100644 --- a/cli/types/tests/cypress-tests.ts +++ b/cli/types/tests/cypress-tests.ts @@ -1159,6 +1159,39 @@ namespace CypressLocalStorageTests { cy.clearAllSessionStorage({ log: 'true' }) // $ExpectError } +namespace CypressRetriesSpec { + Cypress.config('retries', { + openMode: 0, + runMode: 1 + }) + + Cypress.config('retries', { + openMode: false, + runMode: false, + experimentalStrategy: "detect-flake-and-pass-on-threshold", + experimentalOptions: { + maxRetries: 2, + passesRequired: 2 + } + }) + + Cypress.config('retries', { + openMode: false, + runMode: false, + experimentalStrategy: "detect-flake-but-always-fail", + experimentalOptions: { + maxRetries: 2, + stopIfAnyPassed: true + } + }) + + Cypress.config('retries', { openMode: false, runMode: true, experimentalStrategy: "detect-flake-and-pass-on-threshold", experimentalOptions: { maxRetries: 2} }) // $ExpectError + Cypress.config('retries', { openMode: false, runMode: true, experimentalStrategy: "detect-flake-but-always-fail", experimentalOptions: { maxRetries: 2} }) // $ExpectError + + Cypress.config('retries', { openMode: false, runMode: true, experimentalStrategy: "detect-flake-and-pass-on-threshold", experimentalOptions: { passesRequired: 2} }) // $ExpectError + Cypress.config('retries', { openMode: false, runMode: true, experimentalStrategy: "detect-flake-but-always-fail", experimentalOptions: { stopIfAnyPassed: true} }) // $ExpectError +} + namespace CypressTraversalTests { cy.wrap({}).prevUntil('a') // $ExpectType Chainable> cy.wrap({}).prevUntil('#myItem') // $ExpectType Chainable> diff --git a/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts b/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts new file mode 100644 index 000000000000..8acadd3ac8a1 --- /dev/null +++ b/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts @@ -0,0 +1,413 @@ +import { loadSpec, runSpec } from './support/spec-loader' +import { runCypressInCypressMochaEventsTest } from './support/mochaEventsUtils' +import { snapshots } from './retries.experimentalRetries.mochaEvents.snapshots' + +/** + * The mochaEvent tests require a spec to be loaded and executed within an inner Cypress context. + * The spec must load and execute within the duration of the Cypress command timeout. + * The execution time of the inner Cypress is resource/OS dependant and can exceed the default value (4s), + * so we have increased the command timeout to allow the inner spec more time to complete and report + * its mocha event log. + */ + +/** + * In context to experimentalRetries, what is considered a passed/failed test is going to vary depending on the project. + * 'detect-flake-and-pass-on-threshold' will have a passed test as long as the config passesRequired is satisfied on retries. + * 'detect-flake-but-always-fail' projects should have the same passed/failed tests, but different number of attempts depending on stopIfAnyPassed + */ +describe('Experimental retries: mochaEvents & test status tests', { retries: 0, defaultCommandTimeout: 7500 }, () => { + const projects: ['detect-flake-and-pass-on-threshold', 'detect-flake-but-always-fail', 'detect-flake-but-always-fail-stop-any-passed'] = ['detect-flake-and-pass-on-threshold', 'detect-flake-but-always-fail', 'detect-flake-but-always-fail-stop-any-passed'] + + projects.forEach((project) => { + describe(project, () => { + // This will differ per strategy + // for each project: + // 'detect-flake-and-pass-on-threshold': will run a total of 6 times. The first attempt will fail and the next 5 attempts will pass. The test passes. + // 'detect-flake-but-always-fail': will run a total of 10 times. The first attempt will fail and the next 9 attempts will pass. The test fails. + // 'detect-flake-but-always-fail-stop-any-passed': will run a total of 2 times. The first attempt will fail and the second attempt will pass. The test fails. + describe('simple retry', () => { + it('matches mocha snapshot', (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": retries mochaEvents simple retry #1`, + done, + ) + + runSpec({ + fileName: 'experimental-retries/simple-fail.retries.mochaEvents.cy.js', + projectName: project, + + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + + it('displays correct passed/failed tests', () => { + loadSpec({ + filePath: 'runner/experimental-retries/simple-fail.retries.mochaEvents.cy.js', + projectName: project, + passCount: project === 'detect-flake-and-pass-on-threshold' ? 1 : 0, + failCount: project === 'detect-flake-and-pass-on-threshold' ? 0 : 1, + }) + }) + }) + + // This will differ per strategy + // for each project: + // 'detect-flake-and-pass-on-threshold': will run a total of 6 times. The first attempt will fail and the next 5 attempts will pass. The test passes. + // 'detect-flake-but-always-fail': will run a total of 10 times. The first attempt will fail and the next 9 attempts will pass. The test fails. + // 'detect-flake-but-always-fail-stop-any-passed': will run a total of 2 times. The first attempt will fail and the second attempt will pass. The test fails. + describe('test retry with hooks', () => { + it('matches mocha snapshot', (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": retries mochaEvents test retry with hooks #1`, + done, + ) + + runSpec({ + fileName: 'experimental-retries/test-retry-with-hooks.retries.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + + it('displays correct passed/failed tests', () => { + loadSpec({ + filePath: 'runner/experimental-retries/test-retry-with-hooks.retries.mochaEvents.cy.js', + projectName: project, + passCount: project === 'detect-flake-and-pass-on-threshold' ? 1 : 0, + failCount: project === 'detect-flake-and-pass-on-threshold' ? 0 : 1, + }) + }) + }) + + // This will differ per strategy + // for each project: + // 'detect-flake-and-pass-on-threshold': will run a total of 6 times. The first attempt will fail and the next 5 attempts will pass. The test passes. + // 'detect-flake-but-always-fail': will run a total of 10 times. The first attempt will fail and the next 9 attempts will pass. The test fails. + // 'detect-flake-but-always-fail-stop-any-passed': will run a total of 2 times. The first attempt will fail and the second attempt will pass. The test fails. + describe('test retry with [only]', () => { + it('matches mocha snapshot', (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": retries mochaEvents test retry with [only] #1`, + done, + ) + + runSpec({ + fileName: 'experimental-retries/test-retry-with-only.retries.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + + it('displays correct passed/failed tests', () => { + loadSpec({ + filePath: 'runner/experimental-retries/test-retry-with-only.retries.mochaEvents.cy.js', + projectName: project, + passCount: project === 'detect-flake-and-pass-on-threshold' ? 1 : 0, + failCount: project === 'detect-flake-and-pass-on-threshold' ? 0 : 1, + }) + }) + }) + + // This will differ per strategy + // for each project: + // 'detect-flake-and-pass-on-threshold': will run a total of 6 times. The first attempt will fail and the next 5 attempts will pass. The test passes. + // 'detect-flake-but-always-fail': will run a total of 10 times. The first attempt will fail and the next 9 attempts will pass. The test fails. + // 'detect-flake-but-always-fail-stop-any-passed': will run a total of 2 times. The first attempt will fail and the second attempt will pass. The test fails. + describe('can retry from [beforeEach]', () => { + it('matches mocha snapshot', (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": retries mochaEvents can retry from [beforeEach] #1`, + done, + ) + + runSpec({ + fileName: 'experimental-retries/can-retry-from-beforeEach.retries.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + + it('displays correct passed/failed tests', () => { + loadSpec({ + filePath: 'runner/experimental-retries/can-retry-from-beforeEach.retries.mochaEvents.cy.js', + projectName: project, + passCount: project === 'detect-flake-and-pass-on-threshold' ? 1 : 0, + failCount: project === 'detect-flake-and-pass-on-threshold' ? 0 : 1, + }) + }) + }) + + /** + * This will differ per strategy. The spec under test is a bit more complex + * for each project: + * + * 'detect-flake-and-pass-on-threshold': + * + * Suite 1 (passed) + * Test 1 (passed) + * Attempt 1 (failed) + * Attempt 2 (passed) + * Attempt 3 (passed) + * Attempt 4 (passed) + * Attempt 5 (passed) + * Attempt 6 (passed) (passesRequired met) + * Test 2 (passed) + * Attempt 1 (passed) + * Test 3 (passed) + * Attempt 1 (passed) + * + * Suite 2 (passed) + * Test 1 (passed) + * Attempt 1 (failed) + * Attempt 2 (failed) + * Attempt 3 (passed) + * Attempt 4 (passed) + * Attempt 5 (passed) + * Attempt 6 (passed) + * Attempt 7 (passed) (passesRequired met) + * + * Suite 3 (passed) + * Test 1 (passed) + * Attempt 1 (passed) + * + * FINAL RESULT: + * 5 tests passed / 0 tests failed + * + * 'detect-flake-but-always-fail': + * + * Suite 1 (failed) + * Test 1 (failed) + * Attempt 1 (failed) + * Attempt 2 (passed) + * Attempt 3 (passed) + * Attempt 4 (passed) + * Attempt 5 (passed) + * Attempt 6 (passed) + * Attempt 7 (passed) + * Attempt 8 (passed) + * Attempt 9 (passed) + * Attempt 10 (passed) (maxRetries achieved because stopIfAnyPassed=false, fail the test because flaky) + * Test 2 (passed) + * Attempt 1 (passed) + * Test 3 (passed) + * Attempt 1 (passed) + * + * Suite 2 (failed) + * Test 1 (failed) + * Attempt 1 (failed) + * Attempt 2 (failed) + * Attempt 3 (passed) + * Attempt 4 (passed) + * Attempt 5 (passed) + * Attempt 6 (passed) + * Attempt 7 (passed) + * Attempt 8 (passed) + * Attempt 9 (passed) + * Attempt 10 (passed) (maxRetries achieved because stopIfAnyPassed=false, fail the test because flaky) + * + * Suite 3 (passed) + * Test 1 (passed) + * Attempt 1 (passed) + * + * FINAL RESULT: + * 3 tests passed / 2 tests failed + * + * 'detect-flake-but-always-fail-stop-any-passed': + * + * Suite 1 (failed) + * Test 1 (failed) + * Attempt 1 (failed) + * Attempt 2 (passed) (stopIfAnyPassed=true so stop attempts, fail the test because flaky) + * Test 2 (passed) + * Attempt 1 (passed) + * Test 3 (passed) + * Attempt 1 (passed) + * + * Suite 2 (failed) + * Test 1 (failed) + * Attempt 1 (failed) + * Attempt 2 (failed) + * Attempt 3 (passed) (stopIfAnyPassed=true so stop attempts, fail the test because flaky) + * + * Suite 3 (passed) + * Test 1 (passed) + * Attempt 1 (passed) + * + * FINAL RESULT: + * 3 tests passed / 2 tests failed + */ + describe('can retry from [afterEach]', () => { + it('matches mocha snapshot', (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": retries mochaEvents can retry from [afterEach] #1`, + done, + ) + + runSpec({ + fileName: 'experimental-retries/can-retry-from-afterEach.retries.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + + it('displays correct passed/failed tests', () => { + loadSpec({ + filePath: 'runner/experimental-retries/can-retry-from-afterEach.retries.mochaEvents.cy.js', + projectName: project, + passCount: project === 'detect-flake-and-pass-on-threshold' ? 5 : 3, + failCount: project === 'detect-flake-and-pass-on-threshold' ? 0 : 2, + }) + }) + }) + + // this is the same for each test strategy. If the before hook fails the who suite is skipped and tests aren't run + describe('cant retry from [before]', () => { + it('matches mocha snapshot', (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": retries mochaEvents cant retry from [before] #1`, + done, + ) + + runSpec({ + fileName: 'experimental-retries/cant-retry-from-before.retries.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + + it('displays correct passed/failed tests', () => { + loadSpec({ + filePath: 'runner/experimental-retries/cant-retry-from-before.retries.mochaEvents.cy.js', + projectName: project, + passCount: 0, + failCount: 1, + }) + }) + }) + + /** + * This will differ per strategy. The spec under test is a bit more complex + * for each project: + * + * 'detect-flake-and-pass-on-threshold': + * + * Suite 1 (passed) + * Test 1 (passed) + * Attempt 1 (passed) + * Test 2 (passed) + * Attempt 1 (failed) + * Attempt 2 (failed) + * Attempt 3 (passed) + * Attempt 4 (passed) + * Attempt 5 (passed) + * Attempt 6 (passed) + * Attempt 7 (passed) (passesRequired met) + * Test 3 (passed) + * Attempt 1 (passed) + * + * FINAL RESULT: + * 3 tests passed / 0 tests failed + * + * 'detect-flake-but-always-fail': + * + * Suite 1 (failed) + * Test 1 (passed) + * Attempt 1 (passed) + * Test 2 (failed) + * Attempt 1 (failed) + * Attempt 2 (failed) + * Attempt 3 (passed) + * Attempt 4 (passed) + * Attempt 5 (passed) + * Attempt 6 (passed) + * Attempt 7 (passed) + * Attempt 8 (passed) + * Attempt 9 (passed) + * Attempt 10 (passed) (maxRetries achieved because stopIfAnyPassed=false, fail the test because flaky) + * Test 3 (passed) + * Attempt 1 (passed) + * + * FINAL RESULT: + * 2 tests passed / 1 tests failed + * + * 'detect-flake-but-always-fail-stop-any-passed': + * + * Suite 1 (failed) + * Test 1 (passed) + * Attempt 1 (passed) + * Test 2 (failed) + * Attempt 1 (failed) + * Attempt 2 (failed) + * Attempt 3 (passed) (stopIfAnyPassed=true so stop attempts, fail the test because flaky) + * Test 3 (passed) + * Attempt 1 (passed) + * + * FINAL RESULT: + * 2 tests passed / 1 tests failed + */ + describe('three tests with retry', () => { + it('matches mocha snapshot', (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": retries mochaEvents three tests with retry #1`, + done, + ) + + runSpec({ + fileName: 'experimental-retries/three-tests-with-retry.retries.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + + it('displays correct passed/failed tests', () => { + loadSpec({ + filePath: 'runner/experimental-retries/three-tests-with-retry.retries.mochaEvents.cy.js', + projectName: project, + passCount: project === 'detect-flake-and-pass-on-threshold' ? 3 : 2, + failCount: project === 'detect-flake-and-pass-on-threshold' ? 0 : 1, + }) + }) + }) + + // This will differ per strategy + // for each project: + // 'detect-flake-and-pass-on-threshold': will run a total of 6 times. All attempts fail. The test fails + // 'detect-flake-but-always-fail': will run a total of 10 times. All attempts fail. The test fails. + // 'detect-flake-but-always-fail-stop-any-passed': will run a total of 10 times. All attempts fail. The test fails. + describe('cleanses errors before emitting', () => { + it('does not try to serialize error with err.actual as DOM node', function (done) { + // because there are more attempts for 'detect-flake-but-always-fail', the timeout needs to be increased + this.timeout(15000) + + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1`, + done, + ) + + runSpec({ + fileName: 'experimental-retries/does-not-serialize-dom-error.cy.js', + projectName: project, + }).then((win) => { + // should not have err.actual, expected properties since the subject is a DOM element + assertMatchingSnapshot(win) + }) + }) + }) + }) + }) +}) diff --git a/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.snapshots.ts b/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.snapshots.ts new file mode 100644 index 000000000000..c4dcf888d418 --- /dev/null +++ b/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.snapshots.ts @@ -0,0 +1,54372 @@ +export const snapshots = { + '"detect-flake-and-pass-on-threshold": retries mochaEvents simple retry #1': [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail": retries mochaEvents simple retry #1': [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents simple retry #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-and-pass-on-threshold": retries mochaEvents test retry with hooks #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail": retries mochaEvents test retry with hooks #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents test retry with hooks #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-and-pass-on-threshold": retries mochaEvents test retry with [only] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail": retries mochaEvents test retry with [only] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents test retry with [only] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-and-pass-on-threshold": retries mochaEvents can retry from [beforeEach] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h3', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h3', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h3', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail": retries mochaEvents can retry from [beforeEach] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h3', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h3', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h3', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents can retry from [beforeEach] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h3', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h3', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h3', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-and-pass-on-threshold": retries mochaEvents can retry from [afterEach] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r6', + title: 'suite 2', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 7, + outerStatus: 'passed', + }, + id: 'r7', + order: 4, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 6, + retries: 6, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 7, + outerStatus: 'passed', + }, + id: 'r7', + order: 4, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 6, + retries: 6, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 7, + outerStatus: 'passed', + }, + id: 'r7', + order: 4, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 6, + retries: 6, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 7, + outerStatus: 'passed', + }, + id: 'r7', + order: 4, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 6, + retries: 6, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 7, + outerStatus: 'passed', + }, + id: 'r7', + order: 4, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 6, + retries: 6, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r6', + title: 'suite 2', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r8', + title: 'suite 3', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r9', + order: 5, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r9', + order: 5, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r9', + order: 5, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r9', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r9', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r8', + title: 'suite 3', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail": retries mochaEvents can retry from [afterEach] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r6', + title: 'suite 2', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r6', + title: 'suite 2', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r8', + title: 'suite 3', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r9', + order: 5, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r9', + order: 5, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r9', + order: 5, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r9', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r9', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r8', + title: 'suite 3', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents can retry from [afterEach] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r6', + title: 'suite 2', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r7', + order: 4, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r6', + title: 'suite 2', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r8', + title: 'suite 3', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r9', + order: 5, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r9', + order: 5, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r9', + order: 5, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r9', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r9', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r8', + title: 'suite 3', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-and-pass-on-threshold": retries mochaEvents cant retry from [before] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + strategy: 'detect-flake-and-pass-on-threshold', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"before all" hook for "test 1"', + hookName: 'before all', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"before all" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail": retries mochaEvents cant retry from [before] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + strategy: 'detect-flake-but-always-fail', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"before all" hook for "test 1"', + hookName: 'before all', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"before all" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents cant retry from [before] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + strategy: 'detect-flake-but-always-fail', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"before all" hook for "test 1"', + hookName: 'before all', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"before all" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-and-pass-on-threshold": retries mochaEvents three tests with retry #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 7, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 6, + retries: 6, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 7, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 6, + retries: 6, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 7, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 6, + retries: 6, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 7, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 6, + retries: 6, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 7, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 6, + retries: 6, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail": retries mochaEvents three tests with retry #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents three tests with retry #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-and-pass-on-threshold": retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail": retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], +} as const diff --git a/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts b/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts index 64b798e7e82f..7404d1303c40 100644 --- a/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts +++ b/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts @@ -4,381 +4,405 @@ export const snapshots = { 'mocha', 'start', { - 'start': 'match.date', + start: 'match.date', }, ], [ 'mocha', 'suite', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'suite', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'retry', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 1, + _slow: 10000, }, { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, - 'invocationDetails': '{Object 9}', - 'hooks': '[Array 2]', + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 1, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', }, ], [ 'mocha', 'pass', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'end', { - 'end': 'match.date', + end: 'match.date', }, ], ], @@ -388,781 +412,805 @@ export const snapshots = { 'mocha', 'start', { - 'start': 'match.date', + start: 'match.date', }, ], [ 'mocha', 'suite', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'suite', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'retry', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 1, + _slow: 10000, }, { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, - 'invocationDetails': '{Object 9}', - 'hooks': '[Array 6]', + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 1, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'end', { - 'end': 'match.date', + end: 'match.date', }, ], ], @@ -1172,781 +1220,805 @@ export const snapshots = { 'mocha', 'start', { - 'start': 'match.date', + start: 'match.date', }, ], [ 'mocha', 'suite', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'suite', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'retry', { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 1, + _slow: 10000, }, { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, - 'invocationDetails': '{Object 9}', - 'hooks': '[Array 6]', + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 1, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'end', { - 'end': 'match.date', + end: 'match.date', }, ], ], @@ -1956,995 +2028,1019 @@ export const snapshots = { 'mocha', 'start', { - 'start': 'match.date', + start: 'match.date', }, ], [ 'mocha', 'suite', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'suite', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'retry', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'before each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h3', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h3', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 1, + _slow: 10000, }, { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h6', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h6', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'before each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h3', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h3', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'before each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h3', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h3', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, - 'invocationDetails': '{Object 9}', - 'hooks': '[Array 8]', + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 1, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h6', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h6', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h5', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h5', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h5', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h5', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h5', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h5', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 1, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'end', { - 'end': 'match.date', + end: 'match.date', }, ], ], @@ -2954,3350 +3050,3494 @@ export const snapshots = { 'mocha', 'start', { - 'start': 'match.date', + start: 'match.date', }, ], [ 'mocha', 'suite', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'suite', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h6', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h6', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'retry', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, }, { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, - 'invocationDetails': '{Object 9}', - 'hooks': '[Array 8]', + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 2, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 8]', }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h6', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h6', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 2, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 1, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r4', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r4', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r4', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r4', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r4', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h6', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r4', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h6', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r4', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r4', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r5', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r5', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r5', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r5', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r5', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h6', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r5', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h6', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h6', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r5', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r5', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r5', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h5', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r5', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h5', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h5', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h5', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h5', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h5', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h5', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h6', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h6', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h5', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h5', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'suite', { - 'id': 'r6', - 'title': 'suite 2', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r6', + title: 'suite 2', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r7', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h7', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'retry', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h7', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, }, { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, ], [ 'mocha', 'hook end', { - 'id': 'r7', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h7', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r7', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r7', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h7', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h7', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h7', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, - 'invocationDetails': '{Object 9}', - 'hooks': '[Array 4]', + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 2, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', }, ], [ 'mocha', 'hook', { - 'id': 'r7', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h7', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'retry', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h7', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': false, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: false, + currentRetry: 1, + retries: 2, + _slow: 10000, }, { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, ], [ 'mocha', 'hook end', { - 'id': 'r7', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h7', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r7', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r7', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h7', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': false, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: false, + currentRetry: 1, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h7', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': false, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: false, + currentRetry: 1, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h7', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + id: 'r7', + order: 4, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h7', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': false, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: false, + currentRetry: 1, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, - 'invocationDetails': '{Object 9}', - 'hooks': '[Array 4]', + id: 'r7', + order: 4, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 2, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 4]', }, ], [ 'mocha', 'hook', { - 'id': 'r7', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h7', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r7', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h7', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h7', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r7', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r7', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r7', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'passed', + }, + id: 'r7', + order: 4, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'passed', + }, + id: 'r7', + order: 4, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'passed', + }, + id: 'r7', + order: 4, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'passed', + }, + id: 'r7', + order: 4, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r7', - 'order': 4, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'passed', + }, + id: 'r7', + order: 4, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h7', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h7', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r6', - 'title': 'suite 2', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r6', + title: 'suite 2', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'suite', { - 'id': 'r8', - 'title': 'suite 3', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r8', + title: 'suite 3', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r9', - 'order': 5, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r9', + order: 5, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r9', - 'order': 5, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r9', + order: 5, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r9', - 'order': 5, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r9', + order: 5, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r9', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r9', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r9', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': 'relative/path/to/spec.js', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r9', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: 'relative/path/to/spec.js', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r9', - 'order': 5, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r9', - 'order': 5, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r8', - 'title': 'suite 3', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r8', + title: 'suite 3', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r9', - 'order': 5, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r9', - 'order': 5, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r9', + order: 5, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'end', { - 'end': 'match.date', + end: 'match.date', }, ], ], @@ -6307,336 +6547,342 @@ export const snapshots = { 'mocha', 'start', { - 'start': 'match.date', + start: 'match.date', }, ], [ 'mocha', 'suite', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'suite', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'fail', { - 'id': 'r3', - 'title': '"before all" hook for "test 1"', - 'hookName': 'before all', - 'hookId': 'h1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + _cypressTestStatusInfo: { + attempts: 1, + strategy: 'detect-flake-and-pass-on-threshold', + outerStatus: 'failed', + shouldAttemptsContinue: false, }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'originalTitle': '"before all" hook', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook for "test 1"', + hookName: 'before all', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"before all" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'before all', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'before all', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'before all', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 1, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 1, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'end', { - 'end': 'match.date', + end: 'match.date', }, ], ], @@ -6646,2359 +6892,2469 @@ export const snapshots = { 'mocha', 'start', { - 'start': 'match.date', + start: 'match.date', }, ], [ 'mocha', 'suite', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'suite', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r4', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r4', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'retry', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, }, { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, ], [ 'mocha', 'hook', { - 'id': 'r4', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r4', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r4', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, - 'invocationDetails': '{Object 9}', - 'hooks': '[Array 6]', + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 2, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', }, ], [ 'mocha', 'hook end', { - 'id': 'r4', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'retry', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': false, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: false, + currentRetry: 1, + retries: 2, + _slow: 10000, }, { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, ], [ 'mocha', 'hook', { - 'id': 'r4', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r4', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': false, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: false, + currentRetry: 1, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': false, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: false, + currentRetry: 1, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + id: 'r4', + order: 2, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': false, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, + file: null, + final: false, + currentRetry: 1, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r4', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, - 'invocationDetails': '{Object 9}', - 'hooks': '[Array 6]', + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 2, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', }, ], [ 'mocha', 'hook end', { - 'id': 'r4', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r4', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r4', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r5', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r5', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r5', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r5', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r5', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r5', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 2, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'end', { - 'end': 'match.date', + end: 'match.date', }, ], ], - 'src/cypress/runner retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1': [ - [ - 'mocha', - 'start', - { - 'start': 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'retry', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + 'src/cypress/runner retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1': + [ + [ + 'mocha', + 'start', + { + start: 'match.date', + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, - }, - { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, }, - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': false, - 'currentRetry': 0, - 'retries': 2, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, - 'invocationDetails': '{Object 9}', - 'hooks': '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, }, - }, - 'file': null, - 'final': false, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, - }, - { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - }, - 'file': null, - 'final': false, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, }, - }, - 'file': null, - 'final': false, - 'currentRetry': 1, - 'retries': 2, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, - 'invocationDetails': '{Object 9}', - 'hooks': '[Array 2]', - }, - ], - [ - 'mocha', - 'fail', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 2, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - }, - 'file': null, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, - }, - { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, }, - }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + file: null, + final: false, + currentRetry: 1, + retries: 2, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - 'id': 'r2', - 'order': 1, - 'title': 'visits', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, }, - }, - 'file': null, - 'final': true, - 'currentRetry': 2, - 'retries': 2, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'end', - { - 'end': 'match.date', - }, + file: null, + final: false, + currentRetry: 1, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r2', + order: 1, + title: 'visits', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 2, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 2]', + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 3, + outerStatus: 'failed', + }, + id: 'r2', + order: 1, + title: 'visits', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: true, + currentRetry: 2, + retries: 2, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'end', + { + end: 'match.date', + }, + ], ], - ], } as const diff --git a/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.cy.ts b/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.cy.ts new file mode 100644 index 000000000000..ed9b159cccb8 --- /dev/null +++ b/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.cy.ts @@ -0,0 +1,173 @@ +import { runSpec } from './support/spec-loader' +import { runCypressInCypressMochaEventsTest } from './support/mochaEventsUtils' +import { snapshots } from './runner.experimentalRetries.mochaEvents.snapshots' + +/** + * The mochaEvent tests require a spec to be loaded and executed within an inner Cypress context. + * The spec must load and execute within the duration of the Cypress command timeout. + * The execution time of the inner Cypress is resource/OS dependant and can exceed the default value (4s), + * so we have increased the command timeout to allow the inner spec more time to complete and report + * its mocha event log. + */ + +/** + * In context to experimentalRetries, the end state of the tests should be identical regardless of strategy for these tests. + * However, the total amount of attempts on a test will differ based on the strategy used and is documented below + */ +describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, () => { + const projects: ['detect-flake-and-pass-on-threshold', 'detect-flake-but-always-fail', 'detect-flake-but-always-fail-stop-any-passed'] = ['detect-flake-and-pass-on-threshold', 'detect-flake-but-always-fail', 'detect-flake-but-always-fail-stop-any-passed'] + + projects.forEach((project) => { + describe(project, () => { + describe('tests finish with correct state', () => { + describe('hook failures', () => { + // regardless of strategy, this should fail the suite immediately and not run any additional attempts, so the snapshots should be near identical + it(`fail in [before]`, (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": tests finish with correct state hook failures fail in [before] #1`, + done, + ) + + runSpec({ + fileName: 'fail-with-before.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + + // This will differ per strategy + // the snapshots for 'detect-flake-and-always-fail' configurations should almost be identical, regardless of experimentalOptions configuration. + // for each project: + // 'detect-flake-and-pass-on-threshold': will run a total of 6 times and fail 6 times, config is satisfied, the test fails, and the suite is skipped + // 'detect-flake-but-always-fail': will run a total of 10 times and fail 10 times, config is satisfied, the test fails, and the suite is skipped + // 'detect-flake-but-always-fail-stop-any-passed': will run a total of 10 times and fail 10 times config is satisfied, the test fails, and the suite is skipped + it(`fail in [beforeEach]`, (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": tests finish with correct state hook failures fail in [beforeEach] #1`, + done, + ) + + runSpec({ + fileName: 'fail-with-beforeEach.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + + // regardless of strategy, this should fail the suite immediately and not run any additional attempts, so the snapshots should be near identical + it(`fail in [after]`, (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": tests finish with correct state hook failures fail in [after] #1`, + done, + ) + + runSpec({ + fileName: 'fail-with-after.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + + // This will differ per strategy + // the snapshots for 'detect-flake-and-always-fail' configurations should almost be identical, regardless of experimentalOptions configuration. + // for each project: + // 'detect-flake-and-pass-on-threshold': will run a total of 6 times and fail 6 times, config is satisfied, the test fails, and the suite is skipped + // 'detect-flake-but-always-fail': will run a total of 10 times and fail 10 times, config is satisfied, the test fails, and the suite is skipped + // 'detect-flake-but-always-fail-stop-any-passed': will run a total of 10 times and fail 10 times config is satisfied, the test fails, and the suite is skipped + it(`fail in [afterEach]`, (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": tests finish with correct state hook failures fail in [afterEach] #1`, + done, + ) + + runSpec({ + fileName: 'fail-with-afterEach.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + }) + }) + + describe('mocha grep', () => { + // This will differ per strategy + // the snapshots for 'detect-flake-and-always-fail' configurations should almost be identical, regardless of experimentalOptions configuration. + // for each project: + // 'detect-flake-and-pass-on-threshold': will run a total of 6 times and fail 6 times, config is satisfied, the test fails, but the suite is NOT skipped + // 'detect-flake-but-always-fail': will run a total of 10 times and fail 10 times, config is satisfied, the test fails, but the suite is NOT skipped + // 'detect-flake-but-always-fail-stop-any-passed': will run a total of 10 times and fail 10 times config is satisfied, the test fails,but the suite is NOT skipped + it('fail with [only]', (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": tests finish with correct state mocha grep fail with [only] #1`, + done, + ) + + runSpec({ + fileName: 'fail-with-only.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + + // This will be the same per strategy, as the test passes and retries don't get invoked + it('pass with [only]', (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": tests finish with correct state mocha grep pass with [only] #1`, + done, + ) + + runSpec({ + fileName: 'pass-with-only.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + }) + }) + + // these should be the same per strategy, as each test passes and retries is not invoked + describe('mocha events', () => { + it('simple single test', (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": mocha events simple single test #1`, + done, + ) + + runSpec({ + fileName: 'simple-single-test.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + + it('simple three tests', (done) => { + const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( + snapshots, + `"${project}": mocha events simple three tests #1`, + done, + ) + + runSpec({ + fileName: 'three-tests-with-hooks.mochaEvents.cy.js', + projectName: project, + }).then((win) => { + assertMatchingSnapshot(win) + }) + }) + }) + }) +}) diff --git a/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.snapshots.ts b/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.snapshots.ts new file mode 100644 index 000000000000..c30468d930f3 --- /dev/null +++ b/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.snapshots.ts @@ -0,0 +1,30737 @@ +export const snapshots = { + '"detect-flake-and-pass-on-threshold": tests finish with correct state hook failures fail in [before] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + strategy: 'detect-flake-and-pass-on-threshold', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"before all" hook for "test 1"', + hookName: 'before all', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"before all" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail": tests finish with correct state hook failures fail in [before] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + strategy: 'detect-flake-but-always-fail', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"before all" hook for "test 1"', + hookName: 'before all', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"before all" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail-stop-any-passed": tests finish with correct state hook failures fail in [before] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + strategy: 'detect-flake-but-always-fail', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"before all" hook for "test 1"', + hookName: 'before all', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"before all" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-and-pass-on-threshold": tests finish with correct state hook failures fail in [beforeEach] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 6, + strategy: 'detect-flake-and-pass-on-threshold', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"before each" hook for "test 1"', + hookName: 'before each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"before each" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail": tests finish with correct state hook failures fail in [beforeEach] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 10, + strategy: 'detect-flake-but-always-fail', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"before each" hook for "test 1"', + hookName: 'before each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"before each" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail-stop-any-passed": tests finish with correct state hook failures fail in [beforeEach] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 10, + strategy: 'detect-flake-but-always-fail', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"before each" hook for "test 1"', + hookName: 'before each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"before each" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-and-pass-on-threshold": tests finish with correct state hook failures fail in [after] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + strategy: 'detect-flake-and-pass-on-threshold', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r4', + title: '"after all" hook for "test 2"', + hookName: 'after all', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"after all" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + hookName: 'after all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + hookName: 'after all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + hookName: 'after all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail": tests finish with correct state hook failures fail in [after] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + strategy: 'detect-flake-but-always-fail', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r4', + title: '"after all" hook for "test 2"', + hookName: 'after all', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"after all" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + hookName: 'after all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + hookName: 'after all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + hookName: 'after all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail-stop-any-passed": tests finish with correct state hook failures fail in [after] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + strategy: 'detect-flake-but-always-fail', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r4', + title: '"after all" hook for "test 2"', + hookName: 'after all', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"after all" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + hookName: 'after all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + hookName: 'after all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + hookName: 'after all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-and-pass-on-threshold": tests finish with correct state hook failures fail in [afterEach] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 6, + strategy: 'detect-flake-and-pass-on-threshold', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"after each" hook for "test 1"', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"after each" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail": tests finish with correct state hook failures fail in [afterEach] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + null, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 10, + strategy: 'detect-flake-but-always-fail', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"after each" hook for "test 1"', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"after each" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-but-always-fail-stop-any-passed": tests finish with correct state hook failures fail in [afterEach] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 3]', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 10, + strategy: 'detect-flake-but-always-fail', + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"after each" hook for "test 1"', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"after each" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-and-pass-on-threshold": tests finish with correct state mocha grep fail with [only] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 6, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 5, + retries: 5, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-but-always-fail": tests finish with correct state mocha grep fail with [only] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-but-always-fail-stop-any-passed": tests finish with correct state mocha grep fail with [only] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: false, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 1, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 1, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 2, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 2, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 3, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 3, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 4, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 4, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 5, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 5, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 6, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 6, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 7, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 7, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 8, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'retry', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: false, + currentRetry: 8, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + currentRetry: 9, + retries: 9, + _slow: 10000, + invocationDetails: '{Object 9}', + hooks: '[Array 6]', + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 10, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + final: true, + currentRetry: 9, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-and-pass-on-threshold": tests finish with correct state mocha grep pass with [only] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-but-always-fail": tests finish with correct state mocha grep pass with [only] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-but-always-fail-stop-any-passed": tests finish with correct state mocha grep pass with [only] #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-and-pass-on-threshold": mocha events simple single test #1': [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-but-always-fail": mocha events simple single test #1': [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-but-always-fail-stop-any-passed": mocha events simple single test #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + '"detect-flake-and-pass-on-threshold": mocha events simple three tests #1': [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-and-pass-on-threshold', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-but-always-fail": mocha events simple three tests #1': [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], + + '"detect-flake-but-always-fail-stop-any-passed": mocha events simple three tests #1': + [ + ['mocha', 'start', { start: 'match.date' }], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + strategy: 'detect-flake-but-always-fail', + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 9, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + ['mocha', 'end', { end: 'match.date' }], + ], +} diff --git a/packages/app/cypress/e2e/runner/runner.mochaEvents.snapshots.ts b/packages/app/cypress/e2e/runner/runner.mochaEvents.snapshots.ts index 6d2e1729781d..f0b877ee36c4 100644 --- a/packages/app/cypress/e2e/runner/runner.mochaEvents.snapshots.ts +++ b/packages/app/cypress/e2e/runner/runner.mochaEvents.snapshots.ts @@ -1,2741 +1,2970 @@ export const snapshots = { - 'src/cypress/runner tests finish with correct state hook failures fail in [before] #1': [ + 'src/cypress/runner tests finish with correct state hook failures fail in [before] #1': [ - 'mocha', - 'start', - { - 'start': 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook', - { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'fail', - { - 'id': 'r3', - 'title': '"before all" hook for "test 1"', - 'hookName': 'before all', - 'hookId': 'h1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'originalTitle': '"before all" hook', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test end', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'before all', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'before all', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'before all', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'end', - { - 'end': 'match.date', - }, - ], - ], - - 'src/cypress/runner tests finish with correct state hook failures fail in [beforeEach] #1': [ - [ - 'mocha', - 'start', - { - 'start': 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook', - { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'fail', - { - 'id': 'r3', - 'title': '"before each" hook for "test 1"', - 'hookName': 'before each', - 'hookId': 'h1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'originalTitle': '"before each" hook', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'before each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'before each': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'before each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'before each': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'before each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'before each': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'end', - { - 'end': 'match.date', - }, - ], - ], - - 'src/cypress/runner tests finish with correct state hook failures fail in [afterEach] #1': [ - [ - 'mocha', - 'start', - { - 'start': 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook', - { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'fail', - { - 'id': 'r3', - 'title': '"after each" hook for "test 1"', - 'hookName': 'after each', - 'hookId': 'h1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'originalTitle': '"after each" hook', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - 'after each': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - 'after each': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'hookName': 'after each', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - 'after each': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'end', - { - 'end': 'match.date', - }, - ], - ], - - 'src/cypress/runner tests finish with correct state hook failures fail in [after] #1': [ - [ - 'mocha', - 'start', - { - 'start': 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'pass', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test end', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test', - { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook', - { - 'id': 'r4', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'fail', - { - 'id': 'r4', - 'title': '"after all" hook for "test 2"', - 'hookName': 'after all', - 'hookId': 'h1', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'originalTitle': '"after all" hook', - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'hookName': 'after all', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - 'after all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'hookName': 'after all', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - 'after all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'hookName': 'after all', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'failedFromHookId': 'h1', - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - 'after all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'end', - { - 'end': 'match.date', - }, - ], - ], - - 'src/cypress/runner tests finish with correct state mocha grep fail with [only] #1': [ - [ - 'mocha', - 'start', - { - 'start': 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook', - { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'before each': [ - { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - 'after each': [ - { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'after all': [ - { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook', - { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'fail', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'before each': [ - { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + [ + 'mocha', + 'start', + { + start: 'match.date', + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + outerStatus: 'failed', + shouldAttemptsContinue: false, }, - 'after each': [ - { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'after all': [ - { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], + id: 'r3', + title: '"before all" hook for "test 1"', + hookName: 'before all', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"before all" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook', - { - 'id': 'r3', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - 'id': 'r3', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test end', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'before each': [ - { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - 'after each': [ - { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'after all': [ - { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'before each': [ - { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - 'after each': [ - { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'after all': [ - { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'err': { - 'message': '[error message]', - 'name': 'AssertionError', - 'stack': 'match.string', - 'parsedStack': 'match.array', - }, - 'state': 'failed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'before each': [ - { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', }, - 'after each': [ - { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'after all': [ - { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'end', - { - 'end': 'match.date', - }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'end', + { + end: 'match.date', + }, + ], ], - ], - 'src/cypress/runner tests finish with correct state mocha grep pass with [only] #1': [ - [ - 'mocha', - 'start', - { - 'start': 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite', - { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook', - { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], + 'src/cypress/runner tests finish with correct state hook failures fail in [beforeEach] #1': [ - 'mocha', - 'hook end', - { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'before each': [ - { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + [ + 'mocha', + 'start', + { + start: 'match.date', + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + outerStatus: 'failed', + shouldAttemptsContinue: false, }, - 'after each': [ - { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], - 'after all': [ - { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - ], + id: 'r3', + title: '"before each" hook for "test 1"', + hookName: 'before each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"before each" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook', - { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook', - { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook', - { - 'id': 'r3', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - 'id': 'r3', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, - }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'before each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'end', + { + end: 'match.date', + }, + ], ], + + 'src/cypress/runner tests finish with correct state hook failures fail in [afterEach] #1': [ - 'mocha', - 'pass', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + [ + 'mocha', + 'start', + { + start: 'match.date', + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r3', + title: '"after each" hook for "test 1"', + hookName: 'after each', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"after each" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], - 'before each': [ - { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], }, - 'after each': [ - { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], - 'after all': [ - { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 1', + hookName: 'after each', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], + 'after each': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'end', + { + end: 'match.date', + }, + ], ], + + 'src/cypress/runner tests finish with correct state hook failures fail in [after] #1': [ - 'mocha', - 'test end', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + [ + 'mocha', + 'start', + { + start: 'match.date', + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], - 'before each': [ - { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', }, - 'after each': [ - { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:after:run:async', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], - 'after all': [ - { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], - 'before each': [ - { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r4', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + attempts: 1, + outerStatus: 'failed', + shouldAttemptsContinue: false, + }, + id: 'r4', + title: '"after all" hook for "test 2"', + hookName: 'after all', + hookId: 'h1', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + originalTitle: '"after all" hook', + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + hookName: 'after all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + 'after all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], }, - 'after each': [ - { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + hookName: 'after all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], - 'after all': [ - { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + 'after all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r4', + order: 2, + title: 'test 2', + hookName: 'after all', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + failedFromHookId: 'h1', + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], + 'after all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'end', + { + end: 'match.date', + }, + ], ], + + 'src/cypress/runner tests finish with correct state mocha grep fail with [only] #1': [ - 'mocha', - 'test:after:run:async', - { - 'id': 'r3', - 'order': 1, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'before all': [ - { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + [ + 'mocha', + 'start', + { + start: 'match.date', + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], - 'before each': [ - { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'fail', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], }, - 'after each': [ - { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], - 'after all': [ - { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, - ], + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, - }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'failed', + }, + id: 'r3', + order: 1, + title: 'test 2', + err: { + message: '[error message]', + name: 'AssertionError', + stack: 'match.string', + parsedStack: 'match.array', + }, + state: 'failed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'end', + { + end: 'match.date', + }, + ], ], + + 'src/cypress/runner tests finish with correct state mocha grep pass with [only] #1': [ - 'mocha', - 'end', - { - 'end': 'match.date', - }, + [ + 'mocha', + 'start', + { + start: 'match.date', + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:before:run:async', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test', + { + id: 'r3', + order: 1, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'hook end', + { + id: 'r3', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'pass', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test end', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'test:after:run:async', + { + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + 'before all': [ + { + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'before each': [ + { + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + 'after each': [ + { + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + 'after all': [ + { + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + ], + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, + }, + ], + [ + 'mocha', + 'suite end', + { + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, + }, + ], + [ + 'mocha', + 'end', + { + end: 'match.date', + }, + ], ], - ], 'src/cypress/runner mocha events simple single test #1': [ [ 'mocha', 'start', { - 'start': 'match.date', + start: 'match.date', }, ], [ 'mocha', 'suite', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'suite', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', - }, - }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', + }, + }, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'end', { - 'end': 'match.date', + end: 'match.date', }, ], ], @@ -2745,1217 +2974,1287 @@ export const snapshots = { 'mocha', 'start', { - 'start': 'match.date', + start: 'match.date', }, ], [ 'mocha', 'suite', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'suite', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before all" hook', - 'hookName': 'before all', - 'hookId': 'h1', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before all" hook', + hookName: 'before all', + hookId: 'h1', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + id: 'r3', + order: 1, + title: 'test 1', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r3', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r3', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r3', - 'order': 1, - 'title': 'test 1', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r3', + order: 1, + title: 'test 1', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before all': [ { - 'hookId': 'h1', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h1', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r4', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + id: 'r4', + order: 2, + title: 'test 2', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r4', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r4', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r4', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r4', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test:before:after:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r4', - 'order': 2, - 'title': 'test 2', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r4', + order: 2, + title: 'test 2', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r5', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:before:run', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test:before:run:async', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'wallClockStartedAt': 'match.date', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + id: 'r5', + order: 3, + title: 'test 3', + pending: false, + body: '[body]', + type: 'test', + wallClockStartedAt: 'match.date', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r5', - 'title': '"before each" hook', - 'hookName': 'before each', - 'hookId': 'h2', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"before each" hook', + hookName: 'before each', + hookId: 'h2', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r5', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r5', - 'title': '"after each" hook', - 'hookName': 'after each', - 'hookId': 'h4', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after each" hook', + hookName: 'after each', + hookId: 'h4', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook', { - 'id': 'r5', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'hook end', { - 'id': 'r5', - 'title': '"after all" hook', - 'hookName': 'after all', - 'hookId': 'h3', - 'pending': false, - 'body': '[body]', - 'type': 'hook', - 'duration': 'match.number', - 'file': null, - 'invocationDetails': '{Object 9}', - 'currentRetry': 0, - 'retries': -1, - '_slow': 10000, + id: 'r5', + title: '"after all" hook', + hookName: 'after all', + hookId: 'h3', + pending: false, + body: '[body]', + type: 'hook', + duration: 'match.number', + file: null, + invocationDetails: '{Object 9}', + currentRetry: 0, + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'pass', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test end', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r2', - 'title': 'suite 1', - 'root': false, - 'pending': false, - 'type': 'suite', - 'file': null, - 'invocationDetails': '{Object 9}', - 'retries': -1, - '_slow': 10000, + id: 'r2', + title: 'suite 1', + root: false, + pending: false, + type: 'suite', + file: null, + invocationDetails: '{Object 9}', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'test:after:run', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'test:after:run:async', { - 'id': 'r5', - 'order': 3, - 'title': 'test 3', - 'state': 'passed', - 'pending': false, - 'body': '[body]', - 'type': 'test', - 'duration': 'match.number', - 'wallClockStartedAt': 'match.date', - 'wallClockDuration': 'match.number', - 'timings': { - 'lifecycle': 'match.number', + _cypressTestStatusInfo: { + shouldAttemptsContinue: false, + attempts: 1, + outerStatus: 'passed', + }, + id: 'r5', + order: 3, + title: 'test 3', + state: 'passed', + pending: false, + body: '[body]', + type: 'test', + duration: 'match.number', + wallClockStartedAt: 'match.date', + wallClockDuration: 'match.number', + timings: { + lifecycle: 'match.number', 'before each': [ { - 'hookId': 'h2', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h2', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], - 'test': { - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + test: { + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, 'after each': [ { - 'hookId': 'h4', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h4', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], 'after all': [ { - 'hookId': 'h3', - 'fnDuration': 'match.number', - 'afterFnDuration': 'match.number', + hookId: 'h3', + fnDuration: 'match.number', + afterFnDuration: 'match.number', }, ], }, - 'file': null, - 'invocationDetails': '{Object 9}', - 'final': true, - 'currentRetry': 0, - 'retries': 0, - '_slow': 10000, + file: null, + invocationDetails: '{Object 9}', + final: true, + currentRetry: 0, + retries: 0, + _slow: 10000, }, ], [ 'mocha', 'suite end', { - 'id': 'r1', - 'title': '', - 'root': true, - 'pending': false, - 'type': 'suite', - 'file': 'relative/path/to/spec.js', - 'retries': -1, - '_slow': 10000, + id: 'r1', + title: '', + root: true, + pending: false, + type: 'suite', + file: 'relative/path/to/spec.js', + retries: -1, + _slow: 10000, }, ], [ 'mocha', 'end', { - 'end': 'match.date', + end: 'match.date', }, ], ], diff --git a/packages/app/cypress/e2e/runner/support/mochaEventsUtils.ts b/packages/app/cypress/e2e/runner/support/mochaEventsUtils.ts index c6bd1591c458..9305cc9167d3 100644 --- a/packages/app/cypress/e2e/runner/support/mochaEventsUtils.ts +++ b/packages/app/cypress/e2e/runner/support/mochaEventsUtils.ts @@ -108,6 +108,10 @@ const eventCleanseMap = { const keysToEliminate = ['codeFrame', '_testConfig'] as const function removeUnusedKeysForTestSnapshot (obj: T): T { + // with experimental retries, mocha can fire a 'retry' event with an undefined error + // this is expected + if (obj === undefined) return obj + for (const key of keysToEliminate) { delete obj[key] } diff --git a/packages/app/cypress/e2e/runner/support/spec-loader.ts b/packages/app/cypress/e2e/runner/support/spec-loader.ts index f8411f9b0fac..651a6a611153 100644 --- a/packages/app/cypress/e2e/runner/support/spec-loader.ts +++ b/packages/app/cypress/e2e/runner/support/spec-loader.ts @@ -1,3 +1,5 @@ +import type { ProjectFixtureDir } from '@tooling/system-tests/lib/fixtureDirs' + export const shouldHaveTestResults = ({ passCount, failCount, pendingCount }) => { passCount = passCount || '--' failCount = failCount || '--' @@ -13,6 +15,8 @@ export const shouldHaveTestResults = ({ passCount, failCount, pendingCount }) => }) } +type ExperimentalRetriesProjects = 'detect-flake-and-pass-on-threshold' | 'detect-flake-but-always-fail' | 'detect-flake-but-always-fail-stop-any-passed' + export type LoadSpecOptions = { filePath: string setup?: () => void @@ -20,7 +24,7 @@ export type LoadSpecOptions = { failCount?: number | string pendingCount?: number | string hasPreferredIde?: boolean - projectName?: 'runner-e2e-specs' | 'runner-ct-specs' | 'session-and-origin-e2e-specs' + projectName?: 'runner-e2e-specs' | 'runner-ct-specs' | 'session-and-origin-e2e-specs' | ExperimentalRetriesProjects mode?: 'e2e' | 'component' configFile?: string scaffold?: boolean @@ -82,9 +86,10 @@ export function loadSpec (options: LoadSpecOptions) { shouldHaveTestResults({ passCount, failCount, pendingCount }) } -export function runSpec ({ fileName }: { fileName: string }) { - cy.scaffoldProject('runner-e2e-specs') - cy.openProject('runner-e2e-specs') +export function runSpec ({ fileName, projectName }: { fileName: string, projectName?: ProjectFixtureDir }) { + projectName = projectName || 'runner-e2e-specs' + cy.scaffoldProject(projectName) + cy.openProject(projectName) cy.startAppServer() cy.visitApp(`specs/runner?file=cypress/e2e/runner/${fileName}`) diff --git a/packages/app/src/runner/event-manager.ts b/packages/app/src/runner/event-manager.ts index 0c8021f9605d..eb02090ad72f 100644 --- a/packages/app/src/runner/event-manager.ts +++ b/packages/app/src/runner/event-manager.ts @@ -32,6 +32,7 @@ let crossOriginOnMessageRef = ({ data, source }: MessageEvent<{ return undefined } let crossOriginLogs: {[key: string]: Cypress.Log} = {} +let hasMochaRunEnded: boolean = false interface AddGlobalListenerOptions { element: AutomationElementId @@ -564,12 +565,14 @@ export class EventManager { }) Cypress.on('run:start', async () => { + hasMochaRunEnded = false if (Cypress.config('experimentalMemoryManagement') && Cypress.isBrowser({ family: 'chromium' })) { await Cypress.backend('start:memory:profiling', Cypress.config('spec')) } }) Cypress.on('run:end', async () => { + hasMochaRunEnded = true if (Cypress.config('experimentalMemoryManagement') && Cypress.isBrowser({ family: 'chromium' })) { await Cypress.backend('end:memory:profiling') } @@ -720,8 +723,8 @@ export class EventManager { Cypress.primaryOriginCommunicator.on('after:screenshot', handleAfterScreenshot) Cypress.primaryOriginCommunicator.on('log:added', (attrs) => { - // If the test is over and the user enters interactive snapshot mode, do not add cross origin logs to the test runner. - if (Cypress.state('test')?.final) return + // If the mocha run is over and the user enters interactive snapshot mode, do not add cross origin logs to the test runner. + if (hasMochaRunEnded) return // Create a new local log representation of the cross origin log. // It will be attached to the current command. diff --git a/packages/app/src/settings/project/Experiments.vue b/packages/app/src/settings/project/Experiments.vue index 90b59334ddd2..b86489197e18 100644 --- a/packages/app/src/settings/project/Experiments.vue +++ b/packages/app/src/settings/project/Experiments.vue @@ -54,13 +54,33 @@ const props = defineProps<{ }>() const localExperiments = computed(() => { - return props.gql?.config ? (props.gql.config as CypressResolvedConfig).filter((item) => item.field.startsWith('experimental')).map((configItem) => { + // get experiments out of the config + const experimentalConfigurations = props.gql?.config ? (props.gql.config as CypressResolvedConfig).filter((item) => item.field.startsWith('experimental')) : [] + + // get experimental retry properties on the 'retries' config object. Mutate the experimentalConfigurations array as to not have side effects with props.gql.config + // TODO: remove this once experimentalRetries becomes GA. This is to be treated as a one off as supported nested experiments inside config is rare. + const { value: { experimentalStrategy, experimentalOptions, from } } = props.gql?.config.find((item) => item.field === 'retries') + + experimentalConfigurations.push({ + field: 'retries.experimentalStrategy', + from, + value: experimentalStrategy, + }) + + experimentalConfigurations.push({ + field: 'retries.experimentalOptions', + from, + value: experimentalOptions, + }) + // end TODO removal + + return experimentalConfigurations.map((configItem) => { return { key: configItem.field, name: t(`settingsPage.experiments.${configItem.field}.name`), enabled: !!configItem.value, description: t(`settingsPage.experiments.${configItem.field}.description`), } - }) : [] + }) }) diff --git a/packages/config/__snapshots__/validation.spec.ts.js b/packages/config/__snapshots__/validation.spec.ts.js index ace0c97230bd..210fc4785340 100644 --- a/packages/config/__snapshots__/validation.spec.ts.js +++ b/packages/config/__snapshots__/validation.spec.ts.js @@ -28,7 +28,7 @@ exports['browsers list with a string'] = { exports['invalid retry value'] = { 'key': 'mockConfigKey', 'value': '1', - 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls', + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', } exports['invalid retry object'] = { @@ -36,7 +36,7 @@ exports['invalid retry object'] = { 'value': { 'fakeMode': 1, }, - 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls', + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', } exports['not qualified url'] = { @@ -106,7 +106,7 @@ exports['null instead of a number'] = { exports['config/src/validation .isValidClientCertificatesSet returns error message for certs not passed as an array array 1'] = { 'key': 'mockConfigKey', 'value': '1', - 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls', + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', } exports['config/src/validation .isValidClientCertificatesSet returns error message for certs object without url 1'] = { @@ -261,3 +261,235 @@ exports['invalid upper bound'] = { 'value': 52, 'type': 'a valid CRF number between 1 & 51, 0 or false to disable compression, or true to use the default compression of 32', } + +exports['config/src/validation .isValidRetriesConfig experimental options fails with invalid strategy 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'foo', + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with invalid strategy w/ other options (valid) 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'runMode': true, + 'openMode': false, + 'experimentalStrategy': 'bar', + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-but-always-fail: valid strategy w/ other invalid options with experiment 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'runMode': 1, + 'openMode': 0, + 'experimentalStrategy': 'detect-flake-but-always-fail', + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-but-always-fail: maxRetries is negative 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-but-always-fail', + 'experimentalOptions': { + 'maxRetries': -2, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-but-always-fail: maxRetries is 0 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-but-always-fail', + 'experimentalOptions': { + 'maxRetries': 0, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-but-always-fail: maxRetries is floating 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-but-always-fail', + 'experimentalOptions': { + 'maxRetries': 3.5, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with experimentalStrategy is "detect-flake-but-always-fail" with only "maxRetries" in "experimentalOptions" 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-but-always-fail', + 'experimentalOptions': { + 'maxRetries': 4, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-and-pass-on-threshold: valid strategy w/ other invalid options with experiment 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'runMode': 1, + 'openMode': 0, + 'experimentalStrategy': 'detect-flake-and-pass-on-threshold', + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-and-pass-on-threshold: maxRetries is negative 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-and-pass-on-threshold', + 'experimentalOptions': { + 'maxRetries': -2, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-and-pass-on-threshold: maxRetries is 0 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-and-pass-on-threshold', + 'experimentalOptions': { + 'maxRetries': 0, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-and-pass-on-threshold: maxRetries is floating 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-and-pass-on-threshold', + 'experimentalOptions': { + 'maxRetries': 3.5, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with experimentalStrategy is "detect-flake-and-pass-on-threshold" with only "maxRetries" in "experimentalOptions" 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-and-pass-on-threshold', + 'experimentalOptions': { + 'maxRetries': 4, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-and-pass-on-threshold passesRequired is negative 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-and-pass-on-threshold', + 'experimentalOptions': { + 'maxRetries': 1, + 'passesRequired': -4, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-and-pass-on-threshold passesRequired is 0 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-and-pass-on-threshold', + 'experimentalOptions': { + 'maxRetries': 1, + 'passesRequired': 0, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-and-pass-on-threshold passesRequired is floating 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-and-pass-on-threshold', + 'experimentalOptions': { + 'maxRetries': 1, + 'passesRequired': 3.5, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-and-pass-on-threshold provides passesRequired without maxRetries 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-and-pass-on-threshold', + 'experimentalOptions': { + 'passesRequired': 3, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-and-pass-on-threshold provides passesRequired that is greater than maxRetries 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-and-pass-on-threshold', + 'experimentalOptions': { + 'maxRetries': 3, + 'passesRequired': 5, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-and-pass-on-threshold provides stopIfAnyPassed option 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-and-pass-on-threshold', + 'experimentalOptions': { + 'maxRetries': 3, + 'stopIfAnyPassed': true, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-but-always-fail provides passesRequired option 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-but-always-fail', + 'experimentalOptions': { + 'maxRetries': 3, + 'passesRequired': 2, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-but-always-fail provides stopIfAnyPassed without maxRetries 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-but-always-fail', + 'experimentalOptions': { + 'stopIfAnyPassed': false, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} + +exports['config/src/validation .isValidRetriesConfig experimental options fails with detect-flake-but-always-fail stopIfAnyPassed is a number (0 and 1 do not work) 1'] = { + 'key': 'mockConfigKey', + 'value': { + 'experimentalStrategy': 'detect-flake-but-always-fail', + 'experimentalOptions': { + 'maxRetries': 2, + 'stopIfAnyPassed': 1, + }, + }, + 'type': 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy', +} diff --git a/packages/config/src/browser.ts b/packages/config/src/browser.ts index 10bcbbd33588..07018ab7c3c7 100644 --- a/packages/config/src/browser.ts +++ b/packages/config/src/browser.ts @@ -197,6 +197,26 @@ export const validateOverridableAtRunTime = (config: any, isSuiteLevelOverride: return } + // this is unique validation, not applied to the general cy config. + // it will be removed when we support defining experimental retries + // in test config overrides + + // TODO: remove when experimental retry overriding is supported + + if (configKey === 'retries') { + const experimentalRetryCfgKeys = [ + 'experimentalStrategy', 'experimentalOptions', + ] + + Object.keys(config.retries || {}) + .filter((v) => experimentalRetryCfgKeys.includes(v)) + .forEach((invalidExperimentalCfgOverride) => { + onErr({ + invalidConfigKey: `retries.${invalidExperimentalCfgOverride}`, + supportedOverrideLevel: 'global_only', + }) + }) + } // TODO: add a hook to ensure valid testing-type configuration is being set at runtime for all configuration values. // https://github.com/cypress-io/cypress/issues/24365 diff --git a/packages/config/src/options.ts b/packages/config/src/options.ts index 54c8410dfd95..83563f0cbeb2 100644 --- a/packages/config/src/options.ts +++ b/packages/config/src/options.ts @@ -355,10 +355,32 @@ const driverConfigOptions: Array = [ validation: validate.isNumber, overrideLevel: 'any', }, { + /** + * if experimentalStrategy is `detect-flake-and-pass-on-threshold` + * an no experimentalOptions are configured, the following configuration + * should be implicitly used: + * experimentalStrategy: 'detect-flake-and-pass-on-threshold', + * experimentalOptions: { + * maxRetries: 2, + * passesRequired: 2 + * } + * + * if experimentalStrategy is `detect-flake-but-always-fail` + * an no experimentalOptions are configured, the following configuration + * should be implicitly used: + * experimentalStrategy: 'detect-flake-but-always-fail', + * experimentalOptions: { + * maxRetries: 2, + * stopIfAnyPassed: false + * } + */ name: 'retries', defaultValue: { runMode: 0, openMode: 0, + // these values MUST be populated in order to display the experiment correctly inside the project settings in open mode + experimentalStrategy: undefined, + experimentalOptions: undefined, }, validation: validate.isValidRetriesConfig, overrideLevel: 'any', diff --git a/packages/config/src/validation.ts b/packages/config/src/validation.ts index e32233a312f0..27b385aa3664 100644 --- a/packages/config/src/validation.ts +++ b/packages/config/src/validation.ts @@ -119,8 +119,50 @@ export const isValidBrowserList = (_key: string, browsers: any): ErrResult | tru return true } +const isValidExperimentalRetryOptionsConfig = (options: any, strategy: 'detect-flake-but-always-fail' | 'detect-flake-and-pass-on-threshold'): boolean => { + if (options == null) return true + + // retries must be an integer of 1 or greater + const isValidMaxRetries = _.isInteger(options.maxRetries) && options.maxRetries > 0 + + if (!isValidMaxRetries) { + return false + } + + // if the strategy is 'detect-flake-but-always-fail', stopIfAnyPassed must be provided and must be a boolean + if (strategy === 'detect-flake-but-always-fail') { + if (options.passesRequired !== undefined) { + return false + } + + const isValidStopIfAnyPasses = _.isBoolean(options.stopIfAnyPassed) + + if (!isValidStopIfAnyPasses) { + return false + } + } + + // if the strategy is 'detect-flake-and-pass-on-threshold', passesRequired must be provided and must be an integer greater than 0 + if (strategy === 'detect-flake-and-pass-on-threshold') { + if (options.stopIfAnyPassed !== undefined) { + return false + } + + const isValidPassesRequired = _.isInteger(options.passesRequired) && options.passesRequired > 0 && options.passesRequired <= options.maxRetries + + if (!isValidPassesRequired) { + return false + } + } + + return true +} + export const isValidRetriesConfig = (key: string, value: any): ErrResult | true => { const optionalKeys = ['runMode', 'openMode'] + const experimentalOptions = ['experimentalStrategy', 'experimentalOptions'] + const experimentalStrategyOptions = ['detect-flake-but-always-fail', 'detect-flake-and-pass-on-threshold'] + const isValidRetryValue = (val: any) => _.isNull(val) || (Number.isInteger(val) && val >= 0) const optionalKeysAreValid = (val: any, k: string) => optionalKeys.includes(k) && isValidRetryValue(val) @@ -128,11 +170,37 @@ export const isValidRetriesConfig = (key: string, value: any): ErrResult | true return true } - if (_.isObject(value) && _.every(value, optionalKeysAreValid)) { - return true + if (_.isObject(value)) { + const traditionalConfigOptions = _.omit(value, experimentalOptions) + const experimentalConfigOptions = _.pick(value, experimentalOptions) + + const isTraditionalConfigValid = _.every(traditionalConfigOptions, optionalKeysAreValid) + + // if optionalKeys are only present and are valid, return true. + // The defaults for 'experimentalStrategy' and 'experimentalOptions' are undefined, but the keys exist, so we need to check for this + if (isTraditionalConfigValid && !Object.keys(experimentalConfigOptions).filter((key) => experimentalConfigOptions[key] !== undefined).length) { + return true + } + + // check experimental configuration. experimentalStrategy MUST be present if experimental config is provided and set to one of the provided enumerations + if (experimentalConfigOptions.experimentalStrategy) { + // make sure the strategy provided is one of our valid enums + const isValidStrategy = experimentalStrategyOptions.includes(experimentalConfigOptions.experimentalStrategy) + + // if a strategy is provided, and traditional options are also provided, such as runMode and openMode, then these values need to be booleans + const openAndRunModeConfigOptions = _.pick(value, optionalKeys) + const isValidRunAndOpenModeConfigWithStrategy = _.every(openAndRunModeConfigOptions, _.isBoolean) + + // if options aren't present (either undefined or null) or are configured correctly, return true + if (isValidStrategy && isValidRunAndOpenModeConfigWithStrategy && ( + experimentalConfigOptions.experimentalOptions == null || + isValidExperimentalRetryOptionsConfig(experimentalConfigOptions.experimentalOptions, experimentalConfigOptions.experimentalStrategy))) { + return true + } + } } - return errMsg(key, value, 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls') + return errMsg(key, value, 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy') } /** diff --git a/packages/config/test/project/utils.spec.ts b/packages/config/test/project/utils.spec.ts index 2ae506cf63ed..1c789c6da332 100644 --- a/packages/config/test/project/utils.spec.ts +++ b/packages/config/test/project/utils.spec.ts @@ -1090,7 +1090,7 @@ describe('config/src/project/utils', () => { reporterOptions: { value: null, from: 'default' }, requestTimeout: { value: 5000, from: 'default' }, responseTimeout: { value: 30000, from: 'default' }, - retries: { value: { runMode: 0, openMode: 0 }, from: 'default' }, + retries: { value: { runMode: 0, openMode: 0, experimentalStrategy: undefined, experimentalOptions: undefined }, from: 'default' }, screenshotOnRunFailure: { value: true, from: 'default' }, screenshotsFolder: { value: 'cypress/screenshots', from: 'default' }, specPattern: { value: 'cypress/e2e/**/*.cy.{js,jsx,ts,tsx}', from: 'default' }, @@ -1208,7 +1208,7 @@ describe('config/src/project/utils', () => { reporterOptions: { value: null, from: 'default' }, requestTimeout: { value: 5000, from: 'default' }, responseTimeout: { value: 30000, from: 'default' }, - retries: { value: { runMode: 0, openMode: 0 }, from: 'default' }, + retries: { value: { runMode: 0, openMode: 0, experimentalStrategy: undefined, experimentalOptions: undefined }, from: 'default' }, screenshotOnRunFailure: { value: true, from: 'default' }, screenshotsFolder: { value: 'cypress/screenshots', from: 'default' }, slowTestThreshold: { value: 10000, from: 'default' }, diff --git a/packages/config/test/validation.spec.ts b/packages/config/test/validation.spec.ts index 05af3d8d8d44..9b68eb8a1a14 100644 --- a/packages/config/test/validation.spec.ts +++ b/packages/config/test/validation.spec.ts @@ -166,6 +166,289 @@ describe('config/src/validation', () => { expect(result).to.not.be.true snapshot('invalid retry object', result) }) + + it('returns true for valid retry object with experimental keys (default)', () => { + let result = validation.isValidRetriesConfig(mockKey, { + openMode: 0, + runMode: 0, + experimentalStrategy: undefined, + experimentalOptions: undefined, + }) + + expect(result).to.be.true + }) + + describe('experimental options', () => { + describe('passes with', () => { + ['detect-flake-but-always-fail', 'detect-flake-and-pass-on-threshold'].forEach((strategy) => { + it(`experimentalStrategy is "${strategy}" with no "experimentalOptions" & valid runMode and openMode`, () => { + let result = validation.isValidRetriesConfig(mockKey, { + runMode: true, + openMode: false, + experimentalStrategy: strategy, + }) + + expect(result).to.be.true + + result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: strategy, + }) + + expect(result).to.be.true + }) + }) + + it('experimentalStrategy is "detect-flake-but-always-fail" and has option "stopIfAnyPassed"', () => { + let result = validation.isValidRetriesConfig(mockKey, { + runMode: true, + openMode: false, + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 1, + stopIfAnyPassed: true, + }, + }) + + expect(result).to.be.true + + result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 4, + stopIfAnyPassed: false, + }, + }) + + expect(result).to.be.true + }) + + it('experimentalStrategy is "detect-flake-and-pass-on-threshold" and has option "passesRequired"', () => { + let result = validation.isValidRetriesConfig(mockKey, { + runMode: true, + openMode: false, + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 1, + passesRequired: 1, + }, + }) + + expect(result).to.be.true + + result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 4, + passesRequired: 2, + }, + }) + + expect(result).to.be.true + }) + }) + + describe('fails with', () => { + it('invalid strategy', () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: 'foo', + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + it('invalid strategy w/ other options (valid)', () => { + const result = validation.isValidRetriesConfig(mockKey, { + runMode: true, + openMode: false, + experimentalStrategy: 'bar', + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + ;['detect-flake-but-always-fail', 'detect-flake-and-pass-on-threshold'].forEach((strategy) => { + it(`${strategy}: valid strategy w/ other invalid options with experiment`, () => { + const result = validation.isValidRetriesConfig(mockKey, { + runMode: 1, + openMode: 0, + experimentalStrategy: strategy, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + it(`${strategy}: maxRetries is negative`, () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: strategy, + experimentalOptions: { + maxRetries: -2, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + it(`${strategy}: maxRetries is 0`, () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: strategy, + experimentalOptions: { + maxRetries: 0, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + it(`${strategy}: maxRetries is floating`, () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: strategy, + experimentalOptions: { + maxRetries: 3.5, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + it(`experimentalStrategy is "${strategy}" with only "maxRetries" in "experimentalOptions"`, () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: strategy, + experimentalOptions: { + maxRetries: 4, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + }) + + describe('detect-flake-and-pass-on-threshold', () => { + it(`passesRequired is negative`, () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 1, + passesRequired: -4, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + it(`passesRequired is 0`, () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 1, + passesRequired: 0, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + it(`passesRequired is floating`, () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 1, + passesRequired: 3.5, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + it('provides passesRequired without maxRetries', () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + passesRequired: 3, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + it('provides passesRequired that is greater than maxRetries', () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 3, + passesRequired: 5, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + it('provides stopIfAnyPassed option', () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 3, + stopIfAnyPassed: true, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + }) + + describe('detect-flake-but-always-fail', () => { + it('provides passesRequired option', () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 3, + passesRequired: 2, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + it('provides stopIfAnyPassed without maxRetries', () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + stopIfAnyPassed: false, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + + it('stopIfAnyPassed is a number (0 and 1 do not work)', () => { + const result = validation.isValidRetriesConfig(mockKey, { + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 2, + stopIfAnyPassed: 1, + }, + }) + + expect(result).to.not.be.true + snapshot(result) + }) + }) + }) + }) }) describe('.isPlainObject', () => { diff --git a/packages/driver/cypress/e2e/util/mocha_custom_methods.cy.js b/packages/driver/cypress/e2e/util/mocha_custom_methods.cy.js new file mode 100644 index 000000000000..b8ff80a05f32 --- /dev/null +++ b/packages/driver/cypress/e2e/util/mocha_custom_methods.cy.js @@ -0,0 +1,308 @@ +import { calculateTestStatus } from '../../../src/cypress/mocha.ts' + +describe('mocha custom methods', () => { + describe('calculateTestStatus', () => { + let totalRetries = 2 + const createMockTest = (state = 'passed', prevAttempts = []) => { + const mockTestContext = { + currentRetry () { + return prevAttempts.length + }, + retries () { + return totalRetries + }, + state, + prevAttempts, + } + + return Cypress._.cloneDeep(mockTestContext) + } + + it('should never attempt to retry a test that passes on the first try, regardless of strategy', function () { + const undefinedStrategyTest = createMockTest() + const noExperimentalRetries = calculateTestStatus(undefinedStrategyTest) + + expect(noExperimentalRetries.outerStatus).to.equal('passed') + expect(noExperimentalRetries.attempts).to.equal(1) + expect(noExperimentalRetries.shouldAttemptsContinue).to.be.false + expect(noExperimentalRetries.strategy).to.be.undefined + expect(undefinedStrategyTest.final).to.be.true + + const detectFlakeAndPassOnThresholdStrategyTest = createMockTest() + const detectFlakeAndPassOnThreshold = calculateTestStatus(detectFlakeAndPassOnThresholdStrategyTest, { + strategy: 'detect-flake-and-pass-on-threshold', + maxRetries: 8, + passesRequired: 5, + }) + + expect(detectFlakeAndPassOnThreshold.outerStatus).to.equal('passed') + expect(detectFlakeAndPassOnThreshold.attempts).to.equal(1) + expect(detectFlakeAndPassOnThreshold.shouldAttemptsContinue).to.be.false + expect(detectFlakeAndPassOnThreshold.strategy).to.equal('detect-flake-and-pass-on-threshold') + expect(detectFlakeAndPassOnThresholdStrategyTest.final).to.be.true + + const detectFlakeButAlwaysFailStrategyTest = createMockTest() + const detectFlakeButAlwaysFail = calculateTestStatus(detectFlakeButAlwaysFailStrategyTest, { + strategy: 'detect-flake-but-always-fail', + maxRetries: 8, + stopIfAnyPassed: false, + }) + + expect(detectFlakeButAlwaysFail.outerStatus).to.equal('passed') + expect(detectFlakeButAlwaysFail.attempts).to.equal(1) + expect(detectFlakeButAlwaysFail.shouldAttemptsContinue).to.be.false + expect(detectFlakeButAlwaysFail.strategy).to.equal('detect-flake-but-always-fail') + expect(detectFlakeButAlwaysFailStrategyTest.final).to.be.true + }) + + describe('undefined (GA implementation/original)', () => { + it('passed: keeps signaling to retry until test passes', function () { + const mockTest1 = createMockTest('failed') + const attempt1 = calculateTestStatus(mockTest1) + + expect(attempt1.outerStatus).to.be.undefined + expect(attempt1.attempts).to.equal(1) + expect(attempt1.shouldAttemptsContinue).to.be.true + expect(attempt1.strategy).to.be.undefined + + const mockTest2 = createMockTest('passed', [mockTest1]) + const attempt2 = calculateTestStatus(mockTest2) + + expect(attempt2.outerStatus).to.equal('passed') + expect(attempt2.attempts).to.equal(2) + expect(attempt2.shouldAttemptsContinue).to.be.false + expect(attempt2.strategy).to.be.undefined + }) + + // this logic is NOT inclusive of after/afterEach hooks, which can still set the test state after the test has calculated the meta data properties. + // this happens inside ./driver/src/cypress/runner.ts + it('failed: keeps signaling to retry until retry limit is reached', function () { + const mockTest1 = createMockTest('failed') + const attempt1 = calculateTestStatus(mockTest1) + + expect(attempt1.outerStatus).to.be.undefined + expect(attempt1.attempts).to.equal(1) + expect(attempt1.shouldAttemptsContinue).to.be.true + expect(attempt1.strategy).to.be.undefined + + const mockTest2 = createMockTest('failed', [mockTest1]) + const attempt2 = calculateTestStatus(mockTest2) + + expect(attempt2.outerStatus).to.be.undefined + expect(attempt2.attempts).to.equal(2) + expect(attempt2.shouldAttemptsContinue).to.be.true + expect(attempt2.strategy).to.be.undefined + + const mockTest3 = createMockTest('failed', [mockTest1, mockTest2]) + const attempt3 = calculateTestStatus(mockTest3) + + expect(attempt3.outerStatus).to.equal('failed') + expect(attempt3.attempts).to.equal(3) + expect(attempt3.shouldAttemptsContinue).to.be.false + expect(attempt3.strategy).to.be.undefined + }) + }) + + describe('detect-flake-and-pass-on-threshold', () => { + it('passed: no longer signals to retry test after passesRequired threshold is reached', function () { + totalRetries = 5 + const mockTest1 = createMockTest('failed') + const attempt1 = calculateTestStatus(mockTest1, { + strategy: 'detect-flake-and-pass-on-threshold', + maxRetries: totalRetries, + passesRequired: 2, + }) + + expect(attempt1.outerStatus).to.be.undefined + expect(attempt1.attempts).to.equal(1) + expect(attempt1.shouldAttemptsContinue).to.be.true + expect(attempt1.strategy).to.equal('detect-flake-and-pass-on-threshold') + expect(mockTest1.final).to.be.false + + const mockTest2 = createMockTest('failed', [mockTest1]) + const attempt2 = calculateTestStatus(mockTest2, { + strategy: 'detect-flake-and-pass-on-threshold', + maxRetries: totalRetries, + passesRequired: 2, + }) + + expect(attempt2.outerStatus).to.be.undefined + expect(attempt2.attempts).to.equal(2) + expect(attempt2.shouldAttemptsContinue).to.be.true + expect(attempt2.strategy).to.equal('detect-flake-and-pass-on-threshold') + expect(mockTest2.final).to.be.false + + const mockTest3 = createMockTest('passed', [mockTest1, mockTest2]) + const attempt3 = calculateTestStatus(mockTest3, { + strategy: 'detect-flake-and-pass-on-threshold', + maxRetries: totalRetries, + passesRequired: 2, + }) + + expect(attempt3.outerStatus).to.be.undefined + expect(attempt3.attempts).to.equal(3) + expect(attempt3.shouldAttemptsContinue).to.be.true + expect(attempt3.strategy).to.equal('detect-flake-and-pass-on-threshold') + expect(mockTest3.final).to.be.false + + const mockTest4 = createMockTest('passed', [mockTest1, mockTest2, mockTest3]) + const attempt4 = calculateTestStatus(mockTest4, { + strategy: 'detect-flake-and-pass-on-threshold', + maxRetries: totalRetries, + passesRequired: 2, + }) + + expect(attempt4.outerStatus).to.equal('passed') + expect(attempt4.attempts).to.equal(4) + expect(attempt4.shouldAttemptsContinue).to.be.false + expect(attempt4.strategy).to.equal('detect-flake-and-pass-on-threshold') + expect(mockTest4.final).to.be.true + }) + + it('failed: no longer signals to retry test if the passesRequired is impossible to meet', function () { + totalRetries = 4 + const mockTest1 = createMockTest('failed') + const attempt1 = calculateTestStatus(mockTest1, { + strategy: 'detect-flake-and-pass-on-threshold', + maxRetries: totalRetries, + passesRequired: 2, + }) + + expect(attempt1.outerStatus).to.be.undefined + expect(attempt1.attempts).to.equal(1) + expect(attempt1.shouldAttemptsContinue).to.be.true + expect(attempt1.strategy).to.equal('detect-flake-and-pass-on-threshold') + expect(mockTest1.final).to.be.false + + const mockTest2 = createMockTest('failed', [mockTest1]) + const attempt2 = calculateTestStatus(mockTest2, { + strategy: 'detect-flake-and-pass-on-threshold', + maxRetries: totalRetries, + passesRequired: 2, + }) + + expect(attempt2.outerStatus).to.be.undefined + expect(attempt2.attempts).to.equal(2) + expect(attempt2.shouldAttemptsContinue).to.be.true + expect(attempt2.strategy).to.equal('detect-flake-and-pass-on-threshold') + expect(mockTest2.final).to.be.false + + const mockTest3 = createMockTest('failed', [mockTest1, mockTest2]) + const attempt3 = calculateTestStatus(mockTest3, { + strategy: 'detect-flake-and-pass-on-threshold', + maxRetries: totalRetries, + passesRequired: 2, + }) + + expect(attempt3.outerStatus).to.be.undefined + expect(attempt3.attempts).to.equal(3) + expect(attempt3.shouldAttemptsContinue).to.be.true + expect(attempt3.strategy).to.equal('detect-flake-and-pass-on-threshold') + expect(mockTest3.final).to.be.false + + const mockTest4 = createMockTest('failed', [mockTest1, mockTest2, mockTest3]) + const attempt4 = calculateTestStatus(mockTest4, { + strategy: 'detect-flake-and-pass-on-threshold', + maxRetries: totalRetries, + passesRequired: 2, + }) + + expect(attempt4.outerStatus).to.equal('failed') + expect(attempt4.attempts).to.equal(4) + expect(attempt4.shouldAttemptsContinue).to.be.false + expect(attempt4.strategy).to.equal('detect-flake-and-pass-on-threshold') + expect(mockTest4.final).to.be.true + }) + }) + + describe('detect-flake-but-always-fail', () => { + it('failed: no longer signals to retry after retries are exhausted', function () { + totalRetries = 3 + const mockTest1 = createMockTest('failed') + const attempt1 = calculateTestStatus(mockTest1, { + strategy: 'detect-flake-but-always-fail', + maxRetries: totalRetries, + stopIfAnyPassed: false, + }) + + expect(attempt1.outerStatus).to.be.undefined + expect(attempt1.attempts).to.equal(1) + expect(attempt1.shouldAttemptsContinue).to.be.true + expect(attempt1.strategy).to.equal('detect-flake-but-always-fail') + expect(mockTest1.final).to.be.false + + const mockTest2 = createMockTest('failed', [mockTest1]) + const attempt2 = calculateTestStatus(mockTest2, { + strategy: 'detect-flake-but-always-fail', + maxRetries: totalRetries, + stopIfAnyPassed: false, + }) + + expect(attempt2.outerStatus).to.be.undefined + expect(attempt2.attempts).to.equal(2) + expect(attempt2.shouldAttemptsContinue).to.be.true + expect(attempt2.strategy).to.equal('detect-flake-but-always-fail') + expect(mockTest2.final).to.be.false + + const mockTest3 = createMockTest('passed', [mockTest1, mockTest2]) + const attempt3 = calculateTestStatus(mockTest3, { + strategy: 'detect-flake-but-always-fail', + maxRetries: totalRetries, + stopIfAnyPassed: false, + }) + + expect(attempt3.outerStatus).to.be.undefined + expect(attempt3.attempts).to.equal(3) + expect(attempt3.shouldAttemptsContinue).to.be.true + expect(attempt3.strategy).to.equal('detect-flake-but-always-fail') + expect(mockTest3.final).to.be.false + + const mockTest4 = createMockTest('passed', [mockTest1, mockTest2, mockTest3]) + const attempt4 = calculateTestStatus(mockTest4, { + strategy: 'detect-flake-but-always-fail', + maxRetries: totalRetries, + stopIfAnyPassed: false, + }) + + expect(attempt4.outerStatus).to.equal('failed') + expect(attempt4.attempts).to.equal(4) + expect(attempt4.shouldAttemptsContinue).to.be.false + expect(attempt4.strategy).to.equal('detect-flake-but-always-fail') + expect(mockTest4.final).to.be.true + // make sure forceState is called on 'detect-flake-but-always-fail' in the case the last test attempt passed, but the outer status should indicate a failure + expect(mockTest4.forceState).to.equal('passed') + }) + + it('failed: short circuits after a retry has a passed test', function () { + totalRetries = 3 + const mockTest1 = createMockTest('failed') + const attempt1 = calculateTestStatus(mockTest1, { + strategy: 'detect-flake-but-always-fail', + maxRetries: totalRetries, + stopIfAnyPassed: true, + }) + + expect(attempt1.outerStatus).to.be.undefined + expect(attempt1.attempts).to.equal(1) + expect(attempt1.shouldAttemptsContinue).to.be.true + expect(attempt1.strategy).to.equal('detect-flake-but-always-fail') + expect(mockTest1.final).to.be.false + + const mockTest2 = createMockTest('passed', [mockTest1]) + const attempt2 = calculateTestStatus(mockTest2, { + strategy: 'detect-flake-but-always-fail', + maxRetries: totalRetries, + stopIfAnyPassed: true, + }) + + expect(attempt2.outerStatus).to.equal('failed') + expect(attempt2.attempts).to.equal(2) + expect(attempt2.shouldAttemptsContinue).to.be.false + expect(attempt2.strategy).to.equal('detect-flake-but-always-fail') + expect(mockTest2.final).to.true + // make sure forceState is called on 'detect-flake-but-always-fail' in the case the last test attempt passed, but the outer status should indicate a failure + expect(mockTest2.forceState).to.equal('passed') + }) + }) + }) +}) diff --git a/packages/driver/patches/mocha+7.0.1.dev.patch b/packages/driver/patches/mocha+7.0.1.dev.patch index 230159571607..5e7cf190c65a 100644 --- a/packages/driver/patches/mocha+7.0.1.dev.patch +++ b/packages/driver/patches/mocha+7.0.1.dev.patch @@ -11,3 +11,88 @@ index 0b43004..588e195 100644 runner.checkLeaks = options.checkLeaks === true; runner.fullStackTrace = options.fullTrace; runner.asyncOnly = options.asyncOnly; +diff --git a/node_modules/mocha/lib/runner.js b/node_modules/mocha/lib/runner.js +index ceb1a24..113ac40 100644 +--- a/node_modules/mocha/lib/runner.js ++++ b/node_modules/mocha/lib/runner.js +@@ -677,9 +677,45 @@ Runner.prototype.runTests = function(suite, fn) { + } + self.emit(constants.EVENT_TEST_END, test); + return self.hookUp(HOOK_TYPE_AFTER_EACH, next); +- } else if (err) { ++ } ++ else if (err || test.hasAttemptPassed) { ++ if(test.hasAttemptPassed){ ++ // Currently, to get passing attempts to rerun in mocha, ++ // we signal to mocha that we MIGHT need to retry a passed test attempt. ++ // If the test is run and there are no errors present, we assume a ++ // passed test attempt(set in ./driver/src/cypress/runner.ts) ++ test.state = STATE_PASSED ++ } else { ++ // Otherwise, we can assume the test attempt failed as 'err' would have to be present here. ++ test.state = STATE_FAILED ++ } ++ ++ // Evaluate if the test should continue based on 'calculateTestStatus'. ++ // This is a custom method added by Cypress in ./driver/src/cypress/mocha.ts ++ var testStatusInfo = test.calculateTestStatus() ++ ++ if(!testStatusInfo.shouldAttemptsContinue){ ++ // If the test has met the exit condition, we need to grab the metadata from ++ // 'calculateTestStatus' in order to display and interpret the test outerStatus correctly. ++ test._cypressTestStatusInfo = testStatusInfo ++ ++ if(testStatusInfo.attempts > 1) { ++ // If the test has been run AT LEAST twice (i.e. we are retrying), and the exit condition is met, ++ // modify mocha '_retries' to be the max retries made in order to possibly short circuit a suite ++ // if a hook has failed on every attempt (which we may not know at this stage of the test run). ++ ++ // We will need the original retries to 'reset' the possible retries ++ // if the test attempt passes and fits the exit condition, BUT an 'afterEach' hook fails. ++ // In this case, we need to know how many retries we can reapply to satisfy the config. ++ test._maxRetries = test._retries ++ test._retries = test._currentRetry ++ } ++ } ++ + var retry = test.currentRetry(); +- if (retry < test.retries()) { ++ ++ // requeue the test if we have retries and haven't satisfied our retry configuration. ++ if (retry < test.retries() && testStatusInfo.shouldAttemptsContinue) { + var clonedTest = test.clone(); + clonedTest.currentRetry(retry + 1); + tests.unshift(clonedTest); +@@ -689,8 +725,25 @@ Runner.prototype.runTests = function(suite, fn) { + // Early return + hook trigger so that it doesn't + // increment the count wrong + return self.hookUp(HOOK_TYPE_AFTER_EACH, next); +- } else { +- self.fail(test, err); ++ } else if(testStatusInfo.outerStatus === STATE_FAILED) { ++ // However, if we have fit the exit condition and the outerStatus of the test is marked as 'failed'. ++ ++ // We need to check the state of the last test attempt. ++ // In this case, if the strategy is "detect-flake-but-always-fail", ++ // has an outerStatus of 'failed', but the last test attempt passed, we still want to call the 'fail' hooks on the test, but keep ++ // the test attempt marked as passed. ++ ++ // However, since the test might have afterEach/after hooks that mutate the state of the test ++ // (from passed to failed), the hooks might actually affect how many retries are actually run in order to satisfy the config. ++ // In this case, we want to delay failing as long as possible to make sure the test is settled, all attempts are run, and hooks ++ // can no longer retry. For this edge case specifically, the failing of the test in the runner lives in ./driver/src/cypress/runner.ts ++ if(test.state === STATE_FAILED){ ++ self.fail(test, err) ++ } ++ } else if (testStatusInfo?.outerStatus === STATE_PASSED){ ++ // There is no case where a test can 'pass' and the last test attempt be a failure, ++ // meaning we can assume a 'passed' outerStatus has a final passed test attempt. ++ self.emit(constants.EVENT_TEST_PASS, test); + } + self.emit(constants.EVENT_TEST_END, test); + return self.hookUp(HOOK_TYPE_AFTER_EACH, next); +@@ -1029,3 +1082,4 @@ Runner.constants = constants; + * @external EventEmitter + * @see {@link https://nodejs.org/api/events.html#events_class_eventemitter} + */ ++ diff --git a/packages/driver/src/cypress.ts b/packages/driver/src/cypress.ts index fdb04318ff79..279b8b9ebb14 100644 --- a/packages/driver/src/cypress.ts +++ b/packages/driver/src/cypress.ts @@ -278,7 +278,16 @@ class $Cypress { } if (_.isObject(testRetries)) { - return testRetries[this.config('isInteractive') ? 'openMode' : 'runMode'] + const retriesAsNumberOrBoolean = testRetries[this.config('isInteractive') ? 'openMode' : 'runMode'] + + // If experimentalRetries are configured, an experimentalStrategy is present, and the retries configured is a boolean + // then we need to set the mocha '_retries' to 'maxRetries' present in the 'experimentalOptions' configuration. + if (testRetries['experimentalStrategy'] && _.isBoolean(retriesAsNumberOrBoolean) && retriesAsNumberOrBoolean) { + return testRetries['experimentalOptions'].maxRetries + } + + // Otherwise, this is a number and falls back to default + return retriesAsNumberOrBoolean } return null diff --git a/packages/driver/src/cypress/error_messages.ts b/packages/driver/src/cypress/error_messages.ts index cd65fc93b9a8..eafe770c003f 100644 --- a/packages/driver/src/cypress/error_messages.ts +++ b/packages/driver/src/cypress/error_messages.ts @@ -272,6 +272,10 @@ export default { message: `The \`{{invalidConfigKey}}\` configuration can only be overridden from a suite-level override.`, docsUrl: 'https://on.cypress.io/config', }, + global_only: { + message: `The \`{{invalidConfigKey}}\` configuration can only be set globally.`, + docsUrl: 'https://on.cypress.io/config', + }, }, invalid_test_override: { message: `The config passed to your {{overrideLevel}}-level overrides has the following validation error:\n\n{{errMsg}}`, diff --git a/packages/driver/src/cypress/mocha.ts b/packages/driver/src/cypress/mocha.ts index e525d607da43..125c36672bba 100644 --- a/packages/driver/src/cypress/mocha.ts +++ b/packages/driver/src/cypress/mocha.ts @@ -37,6 +37,104 @@ delete (window as any).Mocha export const SKIPPED_DUE_TO_BROWSER_MESSAGE = ' (skipped due to browser)' +interface CypressTest extends Mocha.Test { + prevAttempts: CypressTest[] + final?: boolean + forceState?: 'passed' +} + +type Strategy = 'detect-flake-and-pass-on-threshold' | 'detect-flake-but-always-fail' | undefined + +type NormalizedRetriesConfig = { + strategy?: Strategy + maxRetries?: number + passesRequired?: number + stopIfAnyPassed?: boolean +} + +// NOTE: 'calculateTestStatus' is marked as an individual function to make functionality easier to test. +export function calculateTestStatus (test: CypressTest, config?: NormalizedRetriesConfig) { + // @ts-expect-error + const totalAttemptsAlreadyExecuted = test.currentRetry() + 1 + let shouldAttemptsContinue: boolean = true + let outerTestStatus: 'passed' | 'failed' | undefined = undefined + + const passedTests = _.filter(test.prevAttempts, (o) => o.state === 'passed') + const failedTests = _.filter(test.prevAttempts, (o) => o.state === 'failed') + + // Additionally, if the current test attempt passed/failed, add it to the attempt list + if (test.state === 'passed') { + passedTests.push(test) + } else if (test.state === 'failed') { + failedTests.push(test) + } + + // If there is AT LEAST one failed test attempt, we know we need to apply retry logic. + // Otherwise, the test might be burning in (not implemented yet) OR the test passed on the first attempt, + // meaning retry logic does NOT need to be applied. + if (failedTests.length > 0) { + const maxAttempts = test.retries() + 1 + const remainingAttempts = maxAttempts - totalAttemptsAlreadyExecuted + const passingAttempts = passedTests.length + + // Below variables are used for when strategy is "detect-flake-and-pass-on-threshold" or no strategy is defined + let passesRequired = config?.strategy !== 'detect-flake-but-always-fail' ? + (config?.passesRequired || 1) : + null + + const neededPassingAttemptsLeft = config?.strategy !== 'detect-flake-but-always-fail' ? + (passesRequired as number) - passingAttempts : + null + + // Below variables are used for when strategy is only "detect-flake-but-always-fail" + let stopIfAnyPassed = config?.strategy === 'detect-flake-but-always-fail' ? + (config.stopIfAnyPassed || false) : + null + + // Do we have the required amount of passes? If yes, we no longer need to keep running the test. + if (config?.strategy !== 'detect-flake-but-always-fail' && passingAttempts >= (passesRequired as number)) { + outerTestStatus = 'passed' + test.final = true + shouldAttemptsContinue = false + } else if (totalAttemptsAlreadyExecuted < maxAttempts && + ( + // For strategy "detect-flake-and-pass-on-threshold" or no strategy (current GA retries): + // If we haven't met our max attempt limit AND we have enough remaining attempts that can satisfy the passing requirement. + // retry the test. + (config?.strategy !== 'detect-flake-but-always-fail' && remainingAttempts >= (neededPassingAttemptsLeft as number)) || + // For strategy "detect-flake-but-always-fail": + // If we haven't met our max attempt limit AND + // stopIfAnyPassed is false OR + // stopIfAnyPassed is true and no tests have passed yet. + // retry the test. + (config?.strategy === 'detect-flake-but-always-fail' && (!stopIfAnyPassed || stopIfAnyPassed && passingAttempts === 0)) + )) { + test.final = false + shouldAttemptsContinue = true + } else { + // Otherwise, we should stop retrying the test. + outerTestStatus = 'failed' + test.final = true + // If an outerStatus is 'failed', but the last test attempt was 'passed', we need to force the status so mocha doesn't flag the test attempt as failed. + // This is a common use case with 'detect-flake-but-always-fail', where we want to display the last attempt as 'passed' but fail the test. + test.forceState = test.state === 'passed' ? test.state : undefined + shouldAttemptsContinue = false + } + } else { + // retry logic did not need to be applied and the test passed. + outerTestStatus = 'passed' + shouldAttemptsContinue = false + test.final = true + } + + return { + strategy: config?.strategy, + shouldAttemptsContinue, + attempts: totalAttemptsAlreadyExecuted, + outerStatus: outerTestStatus, + } +} + type MochaArgs = [string, Function | undefined] function createRunnable (ctx, fnType: 'Test' | 'Suite', mochaArgs: MochaArgs, runnableFn: Function, testCallback: Function | string = '', _testConfig?: Record) { const runnable = runnableFn.apply(ctx, mochaArgs) @@ -221,6 +319,10 @@ const restoreTestClone = () => { Test.prototype.clone = testClone } +const removeCalculateTestStatus = () => { + delete Test.prototype.calculateTestStatus +} + const restoreRunnerRunTests = () => { Runner.prototype.runTests = runnerRunTests } @@ -326,11 +428,72 @@ function patchTestClone () { ret._testConfig = this._testConfig ret.id = this.id ret.order = this.order + ret._currentRetry = this._currentRetry return ret } } +function getNormalizedRetriesConfig (Cypress: Cypress.Cypress): NormalizedRetriesConfig { + const retriesConfig = Cypress.config('retries') + const isInOpenMode = Cypress.config('isInteractive') + + if (retriesConfig == null) { + return {} + } + + if (typeof retriesConfig === 'number') { + return { + strategy: 'detect-flake-and-pass-on-threshold', + maxRetries: retriesConfig, + passesRequired: 1, + } + } + + const enablementKey: 'openMode'|'runMode' = isInOpenMode ? 'openMode' : 'runMode' + const enablementValue = retriesConfig[enablementKey] + + // if retries are explicitly disabled, return an empty object + if (enablementValue === false) { + return {} + } + + // by default, retries are disabled in open mode + if (!enablementValue && isInOpenMode) { + return {} + } + + if (typeof enablementValue === 'number') { + return { + strategy: 'detect-flake-and-pass-on-threshold', + maxRetries: enablementValue, + passesRequired: 1, + } + } + + const config = retriesConfig as Cypress.RetryStrategy + + // TODO: For GA, rename experimentalStrategy to strategy, experimentalOptions to options + return { + strategy: config.experimentalStrategy, + maxRetries: config.experimentalOptions?.maxRetries, + passesRequired: config.experimentalOptions?.['passesRequired'], + stopIfAnyPassed: config.experimentalOptions?.['stopIfAnyPassed'], + } +} + +function createCalculateTestStatus (Cypress: Cypress.Cypress) { + // Adds a method to the test object called 'calculateTestStatus' + // which is used inside our mocha patch (./driver/patches/mocha+7.0.1.dev.patch) + // in order to calculate test retries. This prototype functions as a light abstraction around + // 'calculateTestStatus', which makes the function easier to unit-test + Test.prototype.calculateTestStatus = function () { + const retriesConfig = getNormalizedRetriesConfig(Cypress) + + return calculateTestStatus(this, retriesConfig) + } +} + function patchRunnerRunTests () { Runner.prototype.runTests = function () { const suite = arguments[0] @@ -495,6 +658,7 @@ const restore = () => { restoreHookRetries() restoreRunnerRunTests() restoreTestClone() + removeCalculateTestStatus() restoreSuiteAddTest() restoreSuiteAddSuite() restoreSuiteHooks() @@ -509,6 +673,7 @@ const override = (specWindow, Cypress, config) => { patchHookRetries() patchRunnerRunTests() patchTestClone() + createCalculateTestStatus(Cypress) patchSuiteAddTest(specWindow, config) patchSuiteAddSuite(specWindow, config) patchSuiteHooks(specWindow, config) diff --git a/packages/driver/src/cypress/runner.ts b/packages/driver/src/cypress/runner.ts index e41832ed47bc..4cc15bd3bddb 100644 --- a/packages/driver/src/cypress/runner.ts +++ b/packages/driver/src/cypress/runner.ts @@ -25,7 +25,7 @@ const RUNNABLE_AFTER_RUN_ASYNC_EVENT = 'runner:runnable:after:run:async' const RUNNABLE_LOGS = ['routes', 'agents', 'commands', 'hooks'] as const const RUNNABLE_PROPS = [ - '_testConfig', 'id', 'order', 'title', '_titlePath', 'root', 'hookName', 'hookId', 'err', 'state', 'pending', 'failedFromHookId', 'body', 'speed', 'type', 'duration', 'wallClockStartedAt', 'wallClockDuration', 'timings', 'file', 'originalTitle', 'invocationDetails', 'final', 'currentRetry', 'retries', '_slow', + '_cypressTestStatusInfo', '_testConfig', 'id', 'order', 'title', '_titlePath', 'root', 'hookName', 'hookId', 'err', 'state', 'pending', 'failedFromHookId', 'body', 'speed', 'type', 'duration', 'wallClockStartedAt', 'wallClockDuration', 'timings', 'file', 'originalTitle', 'invocationDetails', 'final', 'currentRetry', 'retries', '_slow', ] as const const debug = debugFn('cypress:driver:runner') @@ -481,7 +481,26 @@ const overrideRunnerHook = (Cypress, _runner, getTestById, getTest, setTest, get if (test.final !== false) { test.final = true if (test.state === 'passed') { - Cypress.action('runner:pass', wrap(test)) + if (test?._cypressTestStatusInfo?.outerStatus === 'failed') { + // We call _runner.fail here instead of in mocha because we need to make sure none of the hooks mutate the current test state, which might trigger + // another attempt. This affects our server reporter by reporting the test final status multiple times and incorrect attempt statuses. + // We can be sure here that the test is settled and we can fail it appropriately if the condition is met. + + // In this case, since the last attempt of the test does not contain an error, we need to look one up from a previous attempt + // and fail the last attempt with this error to appropriate the correct runner lifecycle hooks. However, we still want the + // last attempt to be marked as 'passed'. This is where 'forceState' comes into play (see 'calculateTestStatus' in ./driver/src/cypress/mocha.ts) + + // If there are other hooks (such as multiple afterEach hooks) that MIGHT impact the end conditions of the test, we only want to fail this ONCE! + const lastTestWithErr = (test.prevAttempts || []).find((t) => t.state === 'failed') + // TODO: figure out serialization with this looked up error as it isn't printed to the console reporter properly. + const err = lastTestWithErr?.err + + // fail the test as it would in the mocha/lib/runner.js as we can now be certain that no other hooks will impact the state of the test (regardless of hierarchy) + _runner.fail(test, err) + } else { + // If the last test attempt passed, but the outerStatus isn't marked as failed, then we want to emit the mocha 'pass' event. + Cypress.action('runner:pass', wrap(test)) + } } Cypress.action('runner:test:end', wrap(test)) @@ -915,6 +934,11 @@ const setHookFailureProps = (test, hook, err) => { test.duration = hook.duration // TODO: nope (?) test.hookName = hookName // TODO: why are we doing this? test.failedFromHookId = hook.hookId + // There should never be a case where the outerStatus of a test is set AND the last test attempt failed on a hook and the state is passed. + // Therefore, if the last test attempt fails on a hook, the outerStatus should also indicate a failure. + if (test?._cypressTestStatusInfo?.outerStatus) { + test._cypressTestStatusInfo.outerStatus = test.state + } } function getTestFromRunnable (runnable) { @@ -1133,11 +1157,28 @@ const _runnerListeners = (_runner, Cypress, _emissions, getTestById, getTest, se } else { err = $errUtils.appendErrMsg(err, errMessage) } + + // If the test never failed and only the hooks did, + // we need to attach the metadata of the test to the hook to report the failure correctly to the server reporter. + // We calculate it fresh here since it may not be available on the test, which is the case with a beforeEach hook. + // as well as maybe incorrect (test passed on first attempt, but after hooks failed) + const testStatus = test.calculateTestStatus() + + runnable._cypressTestStatusInfo = { + attempts: testStatus.attempts, + strategy: testStatus.strategy, + // regardless of the test state, we should ultimately fail the test here. + outerStatus: runnable.state, + shouldAttemptsContinue: false, + } } // always set runnable err so we can tap into // taking a screenshot on error runnable.err = $errUtils.wrapErr(err) + // If the last test passed, but the outerStatus of a test failed, we need to correct the status of the test to say 'passed' + // (see 'calculateTestStatus' in ./driver/src/cypress/mocha.ts). + runnable.state = runnable.forceState || runnable.state if (!runnable.alreadyEmittedMocha) { // do not double emit this event @@ -1355,9 +1396,7 @@ export default { replaceTest(test, test.id) } - const maybeHandleRetry = (runnable, err) => { - if (!err) return - + const maybeHandleRetryOnFailure = (runnable, err) => { const r = runnable const isHook = r.type === 'hook' const isTest = r.type === 'test' @@ -1365,8 +1404,62 @@ export default { 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 + let isBeforeEachThatIsRetryable = false + let isAfterEachThatIsRetryable = false + + if (isBeforeEachHook || isAfterEachHook) { + if (err) { + // If the beforeEach/afterEach hook failed, mark the test attempt as failed + test.state = 'failed' + } + + // Then calculate the test status, accounting for the updated state if the hook errored + // to see if we should continue running the test. + const status = test.calculateTestStatus() + + // If we have remaining attempts, inclusive of the beforeEach attempt if it failed, then the hook is retry-able + isBeforeEachThatIsRetryable = isBeforeEachHook && status.shouldAttemptsContinue + + if (isAfterEachHook) { + // If we have remaining attempts, inclusive of the afterEach attempt if it failed, then the hook is retry-able + if (status.shouldAttemptsContinue) { + isAfterEachThatIsRetryable = true + } else if (!status.shouldAttemptsContinue && err) { + /** + * OR in the event the test attempt 'passed' and hit the exit condition, + * BUT the afterEach hook errored which MIGHT change the test exit condition (as the test attempt is now 'failed') + * + * In this case, we need to see if we MIGHT have additional retries (maxRetries) available to reapply to satisfy + * the test exit condition. + * + * Ex: This is important for 'detect-flake-but-always-fail' where stopIfAnyPassed=true, where the test itself might pass, + * the exit condition is met, but THEN the 'afterEach' hook itself fails, which MIGHT change the exit conditions of the test + * if there are remaining attempts that can be executed in order to satisfy the experimentalRetries configuration. + * + * To help with exit conditions on test skipping on repeated hook failures, test._retries + * is set to retries made inside our mocha patch (./driver/patches/mocha+7.0.1.dev.patch), assuming a retry is made. + * To show how many attempts are possible, we set '_maxRetries' to the total retries initially configured in order + * to reference here in the case we might need to 'reset'. + * + * When we fall into this scenario, we need to 'reset' the mocha '_retries' in order to continue attempts + * and requeue the test. + */ + + // Since this is the afterEach, we can assume the currentRetry has already run + const canMoreAttemptsBeApplied = test._currentRetry === test._retries && test._currentRetry < test._maxRetries + + if (canMoreAttemptsBeApplied) { + // The test in fact did NOT fit the exit condition because the 'afterEach' changed the status of the test. + // Reset the retries to apply more attempts to possibly satisfy the test retry conditions. + test._retries = test._maxRetries + isAfterEachThatIsRetryable = true + } + } + } + } + + const willRetry = isBeforeEachThatIsRetryable || isAfterEachThatIsRetryable + const isTestConfigOverride = !fired(TEST_BEFORE_RUN_EVENT, test) const fail = function () { @@ -1376,10 +1469,21 @@ export default { return } + if (isTest) { + // If there is no error on the test attempt, then the test attempt passed! + // set a custom property on the test obj, hasTestAttemptPassed, + // to inform mocha (through patch-package) that we need to re-attempt a passed test attempt + // if experimentalRetries is enabled and there is at least one existing failure. + runnable.hasAttemptPassed = !err + } + if (err) { if (willRetry) { - test.state = 'failed' test.final = false + // If the test is being retried/re-attempted, delete the testStatusInfo metadata object if it is present + // that determines outer status as it is no longer needed and contributes to additional properties on the + // test runnable that are NOT needed. + delete test._cypressTestStatusInfo } if (isTestConfigOverride) { @@ -1416,7 +1520,13 @@ export default { newTest._currentRetry = test._currentRetry + 1 - test.parent.testsQueue.unshift(newTest) + // Check to see if the test attempt maybe passed, but hasn't satisfied its retry config yet and requeued itself. + // In this case, we DON'T need to add the new test attempt as it is already queued to rerun. + const testRetryThatMatches = test.parent.testsQueue.find((t) => t.id === newTest.id && t._currentRetry === newTest._currentRetry) + + if (!testRetryThatMatches) { + test.parent.testsQueue.unshift(newTest) + } // this prevents afterEach hooks that exist at a deeper (or same) level than the failing one from running test._skipHooksWithLevelGreaterThan = runnable.titlePath().length - 1 @@ -1643,7 +1753,7 @@ export default { delete runnable.err } - err = maybeHandleRetry(runnable, err) + err = maybeHandleRetryOnFailure(runnable, err) return runnableAfterRunAsync(runnable, Cypress) .then(() => { diff --git a/packages/driver/src/util/config.ts b/packages/driver/src/util/config.ts index 7c622a011672..950a41fdf130 100644 --- a/packages/driver/src/util/config.ts +++ b/packages/driver/src/util/config.ts @@ -103,7 +103,9 @@ export const validateConfig = (state: State, config: Record, skipCo validateOverridableAtRunTime(config, isSuiteOverride, (validationResult) => { let errKey = 'config.cypress_config_api.read_only' - if (validationResult.supportedOverrideLevel === 'suite') { + if (validationResult.supportedOverrideLevel === 'global_only') { + errKey = 'config.invalid_mocha_config_override.global_only' + } else if (validationResult.supportedOverrideLevel === 'suite') { errKey = 'config.invalid_mocha_config_override.suite_only' } else if (mochaOverrideLevel) { errKey = 'config.invalid_mocha_config_override.read_only' diff --git a/packages/driver/types/internal-types.d.ts b/packages/driver/types/internal-types.d.ts index 56745656b901..bcd8b0af3e46 100644 --- a/packages/driver/types/internal-types.d.ts +++ b/packages/driver/types/internal-types.d.ts @@ -96,4 +96,13 @@ interface CypressRunnable extends Mocha.Runnable { hookName: string id: any err: any + // Added by Cypress to Tests in order to calculate continue conditions for retries + calculateTestStatus?: () => { + strategy: 'detect-flake-and-pass-on-threshold' | 'detect-flake-but-always-fail' | undefined + shouldAttemptsContinue: boolean + attempts: number + outerStatus: 'passed' | failed + } + // Added by Cypress to Tests in order to determine if the experimentalRetries test run passed so we can leverage in the retry logic. + hasAttemptPassed?: boolean } diff --git a/packages/frontend-shared/src/locales/en-US.json b/packages/frontend-shared/src/locales/en-US.json index 43efd7657898..1478b4bb8e35 100644 --- a/packages/frontend-shared/src/locales/en-US.json +++ b/packages/frontend-shared/src/locales/en-US.json @@ -595,6 +595,16 @@ "name": "Modify obstructive third party code", "description": "Applies `modifyObstructiveCode` to third party `.html` and `.js`, removes subresource integrity, and modifies the user agent in Electron." }, + "retries": { + "experimentalStrategy": { + "name": "Retries Strategy", + "description": "Applies a strategy for test retries according to your \"flake tolerance\"; options are `detect-flake-but-always-fail` or `detect-flake-and-pass-on-threshold`." + }, + "experimentalOptions": { + "name": "Retries Strategy Options", + "description": "Sets retries strategy-specific options like `maxRetries`, `passesRequired`, and `stopIfAnyPassed`." + } + }, "experimentalSingleTabRunMode": { "name": "Single tab run mode", "description": "Runs all component specs in a single tab, trading spec isolation for faster run mode execution." diff --git a/packages/reporter/src/attempts/attempt-model.ts b/packages/reporter/src/attempts/attempt-model.ts index 253f807f2192..caa9bb4fecfa 100644 --- a/packages/reporter/src/attempts/attempt-model.ts +++ b/packages/reporter/src/attempts/attempt-model.ts @@ -23,6 +23,7 @@ export default class Attempt { @observable isActive: boolean | null = null @observable routes: Route[] = [] @observable _state?: TestState | null = null + @observable _testOuterStatus?: TestState = undefined @observable _invocationCount: number = 0 @observable invocationDetails?: FileDetails @observable hookCount: { [name in HookName]: number } = { @@ -172,6 +173,10 @@ export default class Attempt { this._state = props.state } + if (props._cypressTestStatusInfo?.outerStatus) { + this._testOuterStatus = props._cypressTestStatusInfo.outerStatus + } + if (props.err) { if (this.err) { this.err.update(props.err) diff --git a/packages/reporter/src/lib/events.ts b/packages/reporter/src/lib/events.ts index f0cc2afddd9c..6ee477bfe8a9 100644 --- a/packages/reporter/src/lib/events.ts +++ b/packages/reporter/src/lib/events.ts @@ -98,7 +98,9 @@ const events: Events = { runner.on('test:after:run', action('test:after:run', (runnable: TestProps, isInteractive: boolean) => { runnablesStore.runnableFinished(runnable, isInteractive) if (runnable.final && !appState.studioActive) { - statsStore.incrementCount(runnable.state!) + // When displaying the overall test status, we want to reference the test outerStatus + // as the last runnable (test attempt) may have passed, but the outerStatus might mark the test run as a failure. + statsStore.incrementCount(runnable?._cypressTestStatusInfo?.outerStatus || runnable.state!) } })) diff --git a/packages/reporter/src/test/test-model.ts b/packages/reporter/src/test/test-model.ts index f5eac05a97df..0a305c6c9a05 100644 --- a/packages/reporter/src/test/test-model.ts +++ b/packages/reporter/src/test/test-model.ts @@ -15,6 +15,10 @@ export type UpdateTestCallback = () => void export interface TestProps extends RunnableProps { state: TestState | null + // the final state of the test (the attempt might pass, but the test might be marked as failed) + _cypressTestStatusInfo?: { + outerStatus?: TestState + } err?: ErrProps isOpen?: boolean agents?: Array @@ -31,6 +35,10 @@ export interface TestProps extends RunnableProps { export interface UpdatableTestProps { id: TestProps['id'] state?: TestProps['state'] + // the final state of the test (the attempt might pass, but the test might be marked as failed) + _cypressTestStatusInfo?: { + outerStatus?: TestState + } err?: TestProps['err'] hookId?: string failedFromHookId?: string @@ -89,7 +97,9 @@ export default class Test extends Runnable { } @computed get state () { - return this.lastAttempt ? this.lastAttempt.state : 'active' + // Use the outerStatus of the last attempt to determine overall test status, if present, + // as the last attempt may have 'passed', but the outerStatus may be marked as failed. + return this.lastAttempt ? (this.lastAttempt._testOuterStatus || this.lastAttempt.state) : 'active' } @computed get err () { @@ -122,19 +132,21 @@ export default class Test extends Runnable { } addLog = (props: LogProps) => { - return this._withAttempt(props.testCurrentRetry || this.currentRetry, (attempt: Attempt) => { + // NOTE: The 'testCurrentRetry' prop may be zero, which means we really care about nullish coalescing the value + // to make sure logs on the first attempt are still accounted for even if the attempt has finished. + return this._withAttempt(props.testCurrentRetry ?? this.currentRetry, (attempt: Attempt) => { return attempt.addLog(props) }) } updateLog (props: LogProps) { - this._withAttempt(props.testCurrentRetry || this.currentRetry, (attempt: Attempt) => { + this._withAttempt(props.testCurrentRetry ?? this.currentRetry, (attempt: Attempt) => { attempt.updateLog(props) }) } removeLog (props: LogProps) { - this._withAttempt(props.testCurrentRetry || this.currentRetry, (attempt: Attempt) => { + this._withAttempt(props.testCurrentRetry ?? this.currentRetry, (attempt: Attempt) => { attempt.removeLog(props) }) } @@ -189,7 +201,7 @@ export default class Test extends Runnable { @action finish (props: UpdatableTestProps, isInteractive: boolean) { this._isFinished = !(props.retries && props.currentRetry) || props.currentRetry >= props.retries - this._withAttempt(props.currentRetry || 0, (attempt: Attempt) => { + this._withAttempt(props.currentRetry ?? 0, (attempt: Attempt) => { attempt.finish(props, isInteractive) }) } diff --git a/packages/server/lib/project-base.ts b/packages/server/lib/project-base.ts index 5db44104b346..0d42133f2dd2 100644 --- a/packages/server/lib/project-base.ts +++ b/packages/server/lib/project-base.ts @@ -364,7 +364,7 @@ export class ProjectBase extends EE { debug('received runnables %o', runnables) if (reporterInstance) { - reporterInstance.setRunnables(runnables) + reporterInstance.setRunnables(runnables, this.getConfig()) } if (this._recordTests) { diff --git a/packages/server/lib/reporter.js b/packages/server/lib/reporter.js index 986a25bc3fd2..1cb6d2e914bf 100644 --- a/packages/server/lib/reporter.js +++ b/packages/server/lib/reporter.js @@ -18,6 +18,41 @@ const { overrideRequire } = require('./override_require') // otherwise mocha will be resolved from project's node_modules and might not work with our code const customReporterMochaPath = path.dirname(require.resolve('mocha-7.0.1')) +const buildAttemptMessage = (currentRetry, totalRetries) => { + return `(Attempt ${currentRetry} of ${totalRetries})` +} + +// Used for experimentalRetries, where we want to display the passed/failed +// status of an attempt in the console +const getIconStatus = (status) => { + let overallStatusSymbol + let overallStatusSymbolColor + let overallStatusColor + + switch (status) { + case 'passed': + overallStatusSymbol = mochaSymbols.ok + overallStatusSymbolColor = 'checkmark' + overallStatusColor = 'checkmark' + break + case 'failed': + overallStatusSymbol = mochaSymbols.err + overallStatusSymbolColor = 'bright fail' + overallStatusColor = 'error message' + break + default: + overallStatusSymbol = undefined + overallStatusSymbolColor = undefined + overallStatusColor = 'medium' + } + + return { + overallStatusSymbol, + overallStatusSymbolColor, + overallStatusColor, + } +} + overrideRequire((depPath, _load) => { if ((depPath === 'mocha') || depPath.startsWith('mocha/')) { return _load(depPath.replace('mocha', customReporterMochaPath)) @@ -191,7 +226,10 @@ const mergeErr = function (runnable, runnables, stats) { // dont mutate the test, and merge in the runnable title // in the case its a hook so that we emit the right 'fail' // event for reporters - test = _.extend({}, test, { title: runnable.title }) + + // However, we need to propagate the cypressTestStatusInfo to the reporter in order to print the test information correctly + // in the terminal, as well as updating the test state as it may have changed in the client-side runner. + test = _.extend({}, test, { title: runnable.title, _cypressTestStatusInfo: runnable._cypressTestStatusInfo, state: runnable.state }) return [test, test.err] } @@ -249,13 +287,14 @@ class Reporter { this.normalizeTest = this.normalizeTest.bind(this) } - setRunnables (rootRunnable) { + setRunnables (rootRunnable, cypressConfig) { if (!rootRunnable) { rootRunnable = { title: '' } } // manage stats ourselves this.stats = { suites: 0, tests: 0, passes: 0, pending: 0, skipped: 0, failures: 0 } + this.retriesConfig = cypressConfig ? cypressConfig.retries : {} this.runnables = {} rootRunnable = this._createRunnable(rootRunnable, 'suite') const reporter = Reporter.loadReporter(this.reporterName, this.projectRoot) @@ -281,23 +320,102 @@ class Reporter { --indents }) + const retriesConfig = this.retriesConfig + // Override the default reporter to always show test timing even for fast tests // and display slow ones in yellow rather than red this.runner._events.pass[2] = function (test) { + // can possibly be undefined if the test fails before being run, such as in before/beforeEach hooks + const cypressTestMetaData = test._cypressTestStatusInfo + + const durationColor = test.speed === 'slow' ? 'medium' : 'fast' + + let fmt + + // Print the default if the experiment is not configured + if (!retriesConfig?.experimentalStrategy) { + fmt = + Array(indents).join(' ') + + mochaColor('checkmark', ` ${ mochaSymbols.ok}`) + + mochaColor('pass', ' %s') + + mochaColor(durationColor, ' (%dms)') + + // Log: `✓ test title (300ms)` when a test passes + // eslint-disable-next-line no-console + console.log(fmt, test.title, test.duration) + } else { + // If there have been no retries and experimental retries is configured, + // DON'T decorate the last test in the console as an attempt. + if (cypressTestMetaData?.attempts > 1) { + const lastTestStatus = getIconStatus(test.state) + + fmt = + Array(indents).join(' ') + + mochaColor(lastTestStatus.overallStatusColor, ` ${ lastTestStatus.overallStatusSymbol}${buildAttemptMessage(cypressTestMetaData.attempts, test.retries + 1)}`) + + // or Log: `✓(Attempt 3 of 3) test title` when the overall outerStatus of a test has passed + // eslint-disable-next-line no-console + console.log(fmt, test.title) + } + + const finalTestStatus = getIconStatus(cypressTestMetaData.outerStatus || test.state) + + const finalMessaging = + Array(indents).join(' ') + + mochaColor(finalTestStatus.overallStatusSymbolColor, ` ${ finalTestStatus.overallStatusSymbol ? finalTestStatus.overallStatusSymbol : ''}`) + + mochaColor(finalTestStatus.overallStatusColor, ' %s') + + mochaColor(durationColor, ' (%dms)') + + // Log: ✓`test title` when the overall outerStatus of a test has passed + // OR + // Log: ✖`test title` when the overall outerStatus of a test has failed + // eslint-disable-next-line no-console + console.log(finalMessaging, test.title, test.duration) + } + } + + const originalFailPrint = this.runner._events.fail[2] + + this.runner._events.fail[2] = function (test) { + // can possibly be undefined if the test fails before being run, such as in before/beforeEach hooks + const cypressTestMetaData = test._cypressTestStatusInfo + + // print the default if the experiment is not configured + if (!retriesConfig?.experimentalStrategy) { + return originalFailPrint.call(this, test) + } + const durationColor = test.speed === 'slow' ? 'medium' : 'fast' - const fmt = + + // If there have been no retries and experimental retries is configured, + // DON'T decorate the last test in the console as an attempt. + if (cypressTestMetaData?.attempts > 1) { + const lastTestStatus = getIconStatus(test.state) + + const fmt = + Array(indents).join(' ') + + mochaColor(lastTestStatus.overallStatusColor, ` ${ lastTestStatus.overallStatusSymbol}${buildAttemptMessage(cypressTestMetaData.attempts, test.retries + 1)}`) + + // Log: `✖(Attempt 3 of 3) test title (300ms)` when a test fails and none of the retries have passed + // eslint-disable-next-line no-console + console.log(fmt, test.title) + } + + const finalTestStatus = getIconStatus(cypressTestMetaData?.outerStatus || test.state) + + const finalMessaging = Array(indents).join(' ') + - mochaColor('checkmark', ` ${ mochaSymbols.ok}`) + - mochaColor('pass', ' %s') + + mochaColor(finalTestStatus.overallStatusSymbolColor, ` ${ finalTestStatus.overallStatusSymbol ? finalTestStatus.overallStatusSymbol : ''}`) + + mochaColor(finalTestStatus.overallStatusColor, ' %s') + mochaColor(durationColor, ' (%dms)') - // Log: `✓ test title (300ms)` when a test passes + // Log: ✖`test title` when the overall outerStatus of a test has failed // eslint-disable-next-line no-console - console.log(fmt, test.title, test.duration) + console.log(finalMessaging, test.title, test.duration) } - } - this.runner.ignoreLeaks = true + this.runner.ignoreLeaks = true + } } _createRunnable (runnableProps, type, parent) { @@ -331,7 +449,15 @@ class Reporter { } emit (event, arg) { - if (event === 'retry' && this.reporterName === 'spec') { + // iI using GA retries, log the retry attempt as the status of the attempt is not used + if (event === 'retry' && this.reporterName === 'spec' && !this.retriesConfig?.experimentalStrategy) { + this._logRetry(arg) + } + + // If using experimental retries, log the attempt after the test attempt runs to accurately represent the attempt pass/fail status + // We don't log the last attempt as this is handled by the main pass/fail handler defined above, and would ultimately log AFTER the test complete test status is reported + // from the mocha:pass/mocha:fail event + if (event === 'test:after:run' && this.reporterName === 'spec' && this.retriesConfig?.experimentalStrategy && !arg.final) { this._logRetry(arg) } @@ -361,12 +487,39 @@ class Reporter { _logRetry (test) { const runnable = this.runnables[test.id] + + // Merge the runnable with the updated test props to gain most recent status from the app runnable (in the case a passed test is retried). + _.extend(runnable, test) const padding = ' '.repeat(runnable.titlePath().length) - const retryMessage = mochaColor('medium', `(Attempt ${test.currentRetry + 1} of ${test.retries + 1})`) - // Log: `(Attempt 1 of 2) test title` when a test retries + // Don't display a pass/fail symbol if we don't know the status. + let mochaSymbolToDisplay = '' + let mochaColorScheme = 'medium' + + // If experimental retries are configured, we need to print the pass/fail status of each attempt as it is no longer implied. + if (this.retriesConfig?.experimentalStrategy) { + switch (runnable.state) { + case 'passed': + mochaSymbolToDisplay = mochaColor('checkmark', mochaSymbols.ok) + mochaColorScheme = 'green' + break + case 'failed': + mochaSymbolToDisplay = mochaColor('bright fail', mochaSymbols.err) + mochaColorScheme = 'error message' + break + default: + } + } + + const attemptMessage = mochaColor(mochaColorScheme, buildAttemptMessage(test.currentRetry + 1, test.retries + 1)) + + // Log: `(Attempt 1 of 2) test title` when a test attempts without experimentalRetries configured. + // OR + // Log: `✓(Attempt 1 of 2) test title` when a test attempt passes with experimentalRetries configured. + // OR + // Log: `✖(Attempt 1 of 2) test title` when a test attempt fails with experimentalRetries configured. // eslint-disable-next-line no-console - console.log(`${padding}${retryMessage} ${test.title}`) + return console.log(`${padding}${mochaSymbolToDisplay}${attemptMessage} ${test.title}`) } normalizeHook (hook = {}) { @@ -379,13 +532,31 @@ class Reporter { } normalizeTest (test = {}) { + let outerTest = _.clone(test) + + // In the case tests were skipped or another case where they haven't run, + // test._cypressTestStatusInfo.outerStatus will be undefined. In this case, + // the test state reflects the outer state. + outerTest.state = test._cypressTestStatusInfo?.outerStatus || test.state + + // If the outerStatus is failed, but the last test passed, look up the first error that occurred + // and use this as the test overall error. This same logic is applied in the mocha patch to report + // the error correctly to the Cypress browser reporter (see ./driver/patches/mocha+7.0.1.dev.patch) + if (test.state === 'passed' && outerTest.state === 'failed') { + outerTest.err = (test.prevAttempts || []).find((t) => t.state === 'failed')?.err + // Otherwise, if the test failed, set the error on the outer test similar to the state + // as we can assume that if the last test failed, the state could NEVER be passing. + } else if (test.state === 'failed') { + outerTest.err = test.err + } + const normalizedTest = { - testId: orNull(test.id), - title: getTitlePath(test), - state: orNull(test.state), - body: orNull(test.body), - displayError: orNull(test.err && test.err.stack), - attempts: _.map((test.prevAttempts || []).concat([test]), (attempt) => { + testId: orNull(outerTest.id), + title: getTitlePath(outerTest), + state: orNull(outerTest.state), + body: orNull(outerTest.body), + displayError: orNull(outerTest.err && outerTest.err.stack), + attempts: _.map((outerTest.prevAttempts || []).concat([test]), (attempt) => { const err = attempt.err && { name: attempt.err.name, message: attempt.err.message, diff --git a/packages/server/test/unit/config_spec.js b/packages/server/test/unit/config_spec.js index 994239b4fc6c..343cd75fb527 100644 --- a/packages/server/test/unit/config_spec.js +++ b/packages/server/test/unit/config_spec.js @@ -883,7 +883,7 @@ describe('lib/config', () => { }) context('retries', () => { - const retriesError = 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls' + const retriesError = 'a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy' // need to keep the const here or it'll get stripped by the build // eslint-disable-next-line no-unused-vars diff --git a/system-tests/__snapshots__/experimental_retries.spec.ts.js b/system-tests/__snapshots__/experimental_retries.spec.ts.js new file mode 100644 index 000000000000..4c19d5188422 --- /dev/null +++ b/system-tests/__snapshots__/experimental_retries.spec.ts.js @@ -0,0 +1,2302 @@ +exports['e2e retries.experimentalStrategy / "detect-flake-and-pass-on-threshold" / passes / only runs the first attempt of the test if the test passes'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 1 found (always-passes.cy.js) │ + │ Searched: cypress/e2e/always-passes.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: always-passes.cy.js (1 of 1) + + + always passes + ✓ always passes + + + 1 passing + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 1 │ + │ Failing: 0 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: always-passes.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✔ always-passes.cy.js XX:XX 1 1 - - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✔ All specs passed! XX:XX 1 1 - - - + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-and-pass-on-threshold" / passes / retries up to the "passesRequired" limit if the config can be satisfied'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 1 found (deterministic-flaky.cy.js) │ + │ Searched: cypress/e2e/deterministic-flaky.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: deterministic-flaky.cy.js (1 of 1) + + + deterministic flaky test + ✖(Attempt 1 of 10) deterministically runs pass/fail on this test + ✓(Attempt 2 of 10) deterministically runs pass/fail on this test + ✖(Attempt 3 of 10) deterministically runs pass/fail on this test + ✓(Attempt 4 of 10) deterministically runs pass/fail on this test + ✖(Attempt 5 of 10) deterministically runs pass/fail on this test + ✓(Attempt 6 of 10) deterministically runs pass/fail on this test + ✓ deterministically runs pass/fail on this test + + + 1 passing + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 1 │ + │ Failing: 0 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: deterministic-flaky.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✔ deterministic-flaky.cy.js XX:XX 1 1 - - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✔ All specs passed! XX:XX 1 1 - - - + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-and-pass-on-threshold" / passes / retries up to the "passesRequired" limit if the config can be satisfied (max attempts)'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 1 found (deterministic-flaky.cy.js) │ + │ Searched: cypress/e2e/deterministic-flaky.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: deterministic-flaky.cy.js (1 of 1) + + + deterministic flaky test + ✖(Attempt 1 of 10) deterministically runs pass/fail on this test + ✓(Attempt 2 of 10) deterministically runs pass/fail on this test + ✖(Attempt 3 of 10) deterministically runs pass/fail on this test + ✓(Attempt 4 of 10) deterministically runs pass/fail on this test + ✖(Attempt 5 of 10) deterministically runs pass/fail on this test + ✓(Attempt 6 of 10) deterministically runs pass/fail on this test + ✖(Attempt 7 of 10) deterministically runs pass/fail on this test + ✓(Attempt 8 of 10) deterministically runs pass/fail on this test + ✖(Attempt 9 of 10) deterministically runs pass/fail on this test + ✓(Attempt 10 of 10) deterministically runs pass/fail on this test + ✓ deterministically runs pass/fail on this test + + + 1 passing + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 1 │ + │ Failing: 0 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: deterministic-flaky.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✔ deterministic-flaky.cy.js XX:XX 1 1 - - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✔ All specs passed! XX:XX 1 1 - - - + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-and-pass-on-threshold" / fails / short-circuits if the needed "passesRequired" cannot be satisfied by the remaining attempts available'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 1 found (deterministic-flaky.cy.js) │ + │ Searched: cypress/e2e/deterministic-flaky.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: deterministic-flaky.cy.js (1 of 1) + + + deterministic flaky test + ✖(Attempt 1 of 6) deterministically runs pass/fail on this test + ✓(Attempt 2 of 6) deterministically runs pass/fail on this test + ✖(Attempt 3 of 6) deterministically runs pass/fail on this test + ✖ deterministically runs pass/fail on this test + + + 0 passing + 1 failing + + 1) deterministic flaky test + deterministically runs pass/fail on this test: + AssertionError: expected true to be false + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: deterministic-flaky.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✖ deterministic-flaky.cy.js XX:XX 1 - 1 - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✖ 1 of 1 failed (100%) XX:XX 1 - 1 - - + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-and-pass-on-threshold" / fails / retries up to the "passesRequired" limit if the config can be satisfied (max attempts possible)'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 1 found (deterministic-flaky.cy.js) │ + │ Searched: cypress/e2e/deterministic-flaky.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: deterministic-flaky.cy.js (1 of 1) + + + deterministic flaky test + ✖(Attempt 1 of 7) deterministically runs pass/fail on this test + ✓(Attempt 2 of 7) deterministically runs pass/fail on this test + ✖(Attempt 3 of 7) deterministically runs pass/fail on this test + ✓(Attempt 4 of 7) deterministically runs pass/fail on this test + ✖(Attempt 5 of 7) deterministically runs pass/fail on this test + ✓(Attempt 6 of 7) deterministically runs pass/fail on this test + ✖(Attempt 7 of 7) deterministically runs pass/fail on this test + ✖ deterministically runs pass/fail on this test + + + 0 passing + 1 failing + + 1) deterministic flaky test + deterministically runs pass/fail on this test: + AssertionError: expected true to be false + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: deterministic-flaky.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✖ deterministic-flaky.cy.js XX:XX 1 - 1 - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✖ 1 of 1 failed (100%) XX:XX 1 - 1 - - + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-but-always-fail" / passes / only runs the first attempt of the test if the test passes'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 1 found (always-passes.cy.js) │ + │ Searched: cypress/e2e/always-passes.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: always-passes.cy.js (1 of 1) + + + always passes + ✓ always passes + + + 1 passing + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 1 │ + │ Failing: 0 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: always-passes.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✔ always-passes.cy.js XX:XX 1 1 - - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✔ All specs passed! XX:XX 1 1 - - - + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-but-always-fail" / fails / runs all attempts of the test if the first attempt fails and "stopIfAnyPassed=false"'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 1 found (deterministic-flaky.cy.js) │ + │ Searched: cypress/e2e/deterministic-flaky.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: deterministic-flaky.cy.js (1 of 1) + + + deterministic flaky test + ✖(Attempt 1 of 10) deterministically runs pass/fail on this test + ✓(Attempt 2 of 10) deterministically runs pass/fail on this test + ✖(Attempt 3 of 10) deterministically runs pass/fail on this test + ✓(Attempt 4 of 10) deterministically runs pass/fail on this test + ✖(Attempt 5 of 10) deterministically runs pass/fail on this test + ✓(Attempt 6 of 10) deterministically runs pass/fail on this test + ✖(Attempt 7 of 10) deterministically runs pass/fail on this test + ✓(Attempt 8 of 10) deterministically runs pass/fail on this test + ✖(Attempt 9 of 10) deterministically runs pass/fail on this test + ✓(Attempt 10 of 10) deterministically runs pass/fail on this test + ✖ deterministically runs pass/fail on this test + + + 0 passing + 1 failing + + 1) deterministic flaky test + deterministically runs pass/fail on this test: + [object Object] +AssertionError: expected true to be false + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: deterministic-flaky.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✖ deterministic-flaky.cy.js XX:XX 1 - 1 - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✖ 1 of 1 failed (100%) XX:XX 1 - 1 - - + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-but-always-fail" / fails / runs attempts of the test if the first attempt fails until the test passes if "stopIfAnyPassed=true"'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 1 found (deterministic-flaky.cy.js) │ + │ Searched: cypress/e2e/deterministic-flaky.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: deterministic-flaky.cy.js (1 of 1) + + + deterministic flaky test + ✖(Attempt 1 of 10) deterministically runs pass/fail on this test + ✓(Attempt 2 of 10) deterministically runs pass/fail on this test + ✖ deterministically runs pass/fail on this test + + + 0 passing + 1 failing + + 1) deterministic flaky test + deterministically runs pass/fail on this test: + [object Object] +AssertionError: expected true to be false + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: deterministic-flaky.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✖ deterministic-flaky.cy.js XX:XX 1 - 1 - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✖ 1 of 1 failed (100%) XX:XX 1 - 1 - - + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-and-pass-on-threshold" / exercises experimental-retries suite to verify console reporter and final status code are correct.'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 8 found (can-retry-from-afterEach.retries.mochaEvents.cy.js, can-retry-from-before │ + │ Each.retries.mochaEvents.cy.js, cant-retry-from-before.retries.mochaEvents.cy.js, │ + │ does-not-serialize-dom-error.cy.js, simple-fail.retries.mochaEvents.cy.js, test-re │ + │ try-with-h...) │ + │ Searched: cypress/e2e/runner/experimental-retries/* │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: can-retry-from-afterEach.retries.mochaEvents.cy.js (1 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✓(Attempt 2 of 10) test 1 + ✓(Attempt 3 of 10) test 1 + ✓(Attempt 4 of 10) test 1 + ✓(Attempt 5 of 10) test 1 + ✓(Attempt 6 of 10) test 1 + ✓ test 1 + ✓ test 2 + ✓ test 3 + + suite 2 + ✖(Attempt 1 of 10) test 1 + ✖(Attempt 2 of 10) test 1 + ✓(Attempt 3 of 10) test 1 + ✓(Attempt 4 of 10) test 1 + ✓(Attempt 5 of 10) test 1 + ✓(Attempt 6 of 10) test 1 + ✓(Attempt 7 of 10) test 1 + ✓ test 1 + + suite 3 + ✓ test 1 + + + 5 passing + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 5 │ + │ Passing: 5 │ + │ Failing: 0 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: can-retry-from-afterEach.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: can-retry-from-beforeEach.retries.mochaEvents.cy.js (2 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✓(Attempt 2 of 10) test 1 + ✓(Attempt 3 of 10) test 1 + ✓(Attempt 4 of 10) test 1 + ✓(Attempt 5 of 10) test 1 + ✓(Attempt 6 of 10) test 1 + ✓ test 1 + + + 1 passing + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 1 │ + │ Failing: 0 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: can-retry-from-beforeEach.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: cant-retry-from-before.retries.mochaEvents.cy.js (3 of 8) + + + suite 1 + ✖ "before all" hook for "test 1" (NaNms) + + + 0 passing + 1 failing + + 1) suite 1 + "before all" hook for "test 1": + Error: Because this error occurred during a \`before all\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + +Although you have test retries enabled, we do not retry tests when \`before all\` or \`after all\` hooks fail + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: cant-retry-from-before.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: does-not-serialize-dom-error.cy.js (4 of 8) + + + ✖(Attempt 1 of 10) visits + ✖(Attempt 2 of 10) visits + ✖(Attempt 3 of 10) visits + ✖(Attempt 4 of 10) visits + ✖(Attempt 5 of 10) visits + ✖(Attempt 6 of 10) visits + ✖ visits + + 0 passing + 1 failing + + 1) visits: + AssertionError: Timed out retrying after 200ms: expected '' not to be 'visible' + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: does-not-serialize-dom-error.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: simple-fail.retries.mochaEvents.cy.js (5 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✓(Attempt 2 of 10) test 1 + ✓(Attempt 3 of 10) test 1 + ✓(Attempt 4 of 10) test 1 + ✓(Attempt 5 of 10) test 1 + ✓(Attempt 6 of 10) test 1 + ✓ test 1 + + + 1 passing + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 1 │ + │ Failing: 0 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: simple-fail.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: test-retry-with-hooks.retries.mochaEvents.cy.js (6 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✓(Attempt 2 of 10) test 1 + ✓(Attempt 3 of 10) test 1 + ✓(Attempt 4 of 10) test 1 + ✓(Attempt 5 of 10) test 1 + ✓(Attempt 6 of 10) test 1 + ✓ test 1 + + + 1 passing + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 1 │ + │ Failing: 0 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: test-retry-with-hooks.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: test-retry-with-only.retries.mochaEvents.cy.js (7 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 2 + ✓(Attempt 2 of 10) test 2 + ✓(Attempt 3 of 10) test 2 + ✓(Attempt 4 of 10) test 2 + ✓(Attempt 5 of 10) test 2 + ✓(Attempt 6 of 10) test 2 + ✓ test 2 + + + 1 passing + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 1 │ + │ Failing: 0 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: test-retry-with-only.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: three-tests-with-retry.retries.mochaEvents.cy.js (8 of 8) + + + suite 1 + ✓ test 1 + ✖(Attempt 1 of 10) test 2 + ✖(Attempt 2 of 10) test 2 + ✓(Attempt 3 of 10) test 2 + ✓(Attempt 4 of 10) test 2 + ✓(Attempt 5 of 10) test 2 + ✓(Attempt 6 of 10) test 2 + ✓(Attempt 7 of 10) test 2 + ✓ test 2 + ✓ test 3 + + + 3 passing + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 3 │ + │ Passing: 3 │ + │ Failing: 0 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: three-tests-with-retry.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✔ can-retry-from-afterEach.retries.mo XX:XX 5 5 - - - │ + │ chaEvents.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✔ can-retry-from-beforeEach.retries.m XX:XX 1 1 - - - │ + │ ochaEvents.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ cant-retry-from-before.retries.moch XX:XX 1 - 1 - - │ + │ aEvents.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ does-not-serialize-dom-error.cy.js XX:XX 1 - 1 - - │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✔ simple-fail.retries.mochaEvents.cy. XX:XX 1 1 - - - │ + │ js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✔ test-retry-with-hooks.retries.mocha XX:XX 1 1 - - - │ + │ Events.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✔ test-retry-with-only.retries.mochaE XX:XX 1 1 - - - │ + │ vents.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✔ three-tests-with-retry.retries.moch XX:XX 3 3 - - - │ + │ aEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✖ 2 of 8 failed (25%) XX:XX 14 12 2 - - + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-but-always-fail" / exercises experimental-retries suite to verify console reporter and final status code are correct.'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 8 found (can-retry-from-afterEach.retries.mochaEvents.cy.js, can-retry-from-before │ + │ Each.retries.mochaEvents.cy.js, cant-retry-from-before.retries.mochaEvents.cy.js, │ + │ does-not-serialize-dom-error.cy.js, simple-fail.retries.mochaEvents.cy.js, test-re │ + │ try-with-h...) │ + │ Searched: cypress/e2e/runner/experimental-retries/* │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: can-retry-from-afterEach.retries.mochaEvents.cy.js (1 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✓(Attempt 2 of 10) test 1 + ✓(Attempt 3 of 10) test 1 + ✓(Attempt 4 of 10) test 1 + ✓(Attempt 5 of 10) test 1 + ✓(Attempt 6 of 10) test 1 + ✓(Attempt 7 of 10) test 1 + ✓(Attempt 8 of 10) test 1 + ✓(Attempt 9 of 10) test 1 + ✓(Attempt 10 of 10) test 1 + ✖ test 1 + ✓ test 2 + ✓ test 3 + + suite 2 + ✖(Attempt 1 of 10) test 1 + ✖(Attempt 2 of 10) test 1 + ✓(Attempt 3 of 10) test 1 + ✓(Attempt 4 of 10) test 1 + ✓(Attempt 5 of 10) test 1 + ✓(Attempt 6 of 10) test 1 + ✓(Attempt 7 of 10) test 1 + ✓(Attempt 8 of 10) test 1 + ✓(Attempt 9 of 10) test 1 + ✓(Attempt 10 of 10) test 1 + ✖ test 1 + + suite 3 + ✓ test 1 + + + 3 passing + 2 failing + + 1) suite 1 + test 1: + + [object Object] + Error + [stack trace lines] + + 2) suite 2 + test 1: + + [object Object] + Error + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 5 │ + │ Passing: 3 │ + │ Failing: 2 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: can-retry-from-afterEach.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: can-retry-from-beforeEach.retries.mochaEvents.cy.js (2 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✓(Attempt 2 of 10) test 1 + ✓(Attempt 3 of 10) test 1 + ✓(Attempt 4 of 10) test 1 + ✓(Attempt 5 of 10) test 1 + ✓(Attempt 6 of 10) test 1 + ✓(Attempt 7 of 10) test 1 + ✓(Attempt 8 of 10) test 1 + ✓(Attempt 9 of 10) test 1 + ✓(Attempt 10 of 10) test 1 + ✖ test 1 + + + 0 passing + 1 failing + + 1) suite 1 + test 1: + + [object Object] + Error + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: can-retry-from-beforeEach.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: cant-retry-from-before.retries.mochaEvents.cy.js (3 of 8) + + + suite 1 + ✖ "before all" hook for "test 1" (NaNms) + + + 0 passing + 1 failing + + 1) suite 1 + "before all" hook for "test 1": + Error: Because this error occurred during a \`before all\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + +Although you have test retries enabled, we do not retry tests when \`before all\` or \`after all\` hooks fail + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: cant-retry-from-before.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: does-not-serialize-dom-error.cy.js (4 of 8) + + + ✖(Attempt 1 of 10) visits + ✖(Attempt 2 of 10) visits + ✖(Attempt 3 of 10) visits + ✖(Attempt 4 of 10) visits + ✖(Attempt 5 of 10) visits + ✖(Attempt 6 of 10) visits + ✖(Attempt 7 of 10) visits + ✖(Attempt 8 of 10) visits + ✖(Attempt 9 of 10) visits + ✖(Attempt 10 of 10) visits + ✖ visits + + 0 passing + 1 failing + + 1) visits: + AssertionError: Timed out retrying after 200ms: expected '' not to be 'visible' + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: does-not-serialize-dom-error.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: simple-fail.retries.mochaEvents.cy.js (5 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✓(Attempt 2 of 10) test 1 + ✓(Attempt 3 of 10) test 1 + ✓(Attempt 4 of 10) test 1 + ✓(Attempt 5 of 10) test 1 + ✓(Attempt 6 of 10) test 1 + ✓(Attempt 7 of 10) test 1 + ✓(Attempt 8 of 10) test 1 + ✓(Attempt 9 of 10) test 1 + ✓(Attempt 10 of 10) test 1 + ✖ test 1 + + + 0 passing + 1 failing + + 1) suite 1 + test 1: + [object Object] +Error: test 1 + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: simple-fail.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: test-retry-with-hooks.retries.mochaEvents.cy.js (6 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✓(Attempt 2 of 10) test 1 + ✓(Attempt 3 of 10) test 1 + ✓(Attempt 4 of 10) test 1 + ✓(Attempt 5 of 10) test 1 + ✓(Attempt 6 of 10) test 1 + ✓(Attempt 7 of 10) test 1 + ✓(Attempt 8 of 10) test 1 + ✓(Attempt 9 of 10) test 1 + ✓(Attempt 10 of 10) test 1 + ✖ test 1 + + + 0 passing + 1 failing + + 1) suite 1 + test 1: + [object Object] +Error: test 1 + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: test-retry-with-hooks.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: test-retry-with-only.retries.mochaEvents.cy.js (7 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 2 + ✓(Attempt 2 of 10) test 2 + ✓(Attempt 3 of 10) test 2 + ✓(Attempt 4 of 10) test 2 + ✓(Attempt 5 of 10) test 2 + ✓(Attempt 6 of 10) test 2 + ✓(Attempt 7 of 10) test 2 + ✓(Attempt 8 of 10) test 2 + ✓(Attempt 9 of 10) test 2 + ✓(Attempt 10 of 10) test 2 + ✖ test 2 + + + 0 passing + 1 failing + + 1) suite 1 + test 2: + [object Object] +Error: test 2 + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: test-retry-with-only.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: three-tests-with-retry.retries.mochaEvents.cy.js (8 of 8) + + + suite 1 + ✓ test 1 + ✖(Attempt 1 of 10) test 2 + ✖(Attempt 2 of 10) test 2 + ✓(Attempt 3 of 10) test 2 + ✓(Attempt 4 of 10) test 2 + ✓(Attempt 5 of 10) test 2 + ✓(Attempt 6 of 10) test 2 + ✓(Attempt 7 of 10) test 2 + ✓(Attempt 8 of 10) test 2 + ✓(Attempt 9 of 10) test 2 + ✓(Attempt 10 of 10) test 2 + ✖ test 2 + ✓ test 3 + + + 2 passing + 1 failing + + 1) suite 1 + test 2: + + [object Object] + Error + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 3 │ + │ Passing: 2 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: three-tests-with-retry.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✖ can-retry-from-afterEach.retries.mo XX:XX 5 3 2 - - │ + │ chaEvents.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ can-retry-from-beforeEach.retries.m XX:XX 1 - 1 - - │ + │ ochaEvents.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ cant-retry-from-before.retries.moch XX:XX 1 - 1 - - │ + │ aEvents.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ does-not-serialize-dom-error.cy.js XX:XX 1 - 1 - - │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ simple-fail.retries.mochaEvents.cy. XX:XX 1 - 1 - - │ + │ js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ test-retry-with-hooks.retries.mocha XX:XX 1 - 1 - - │ + │ Events.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ test-retry-with-only.retries.mochaE XX:XX 1 - 1 - - │ + │ vents.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ three-tests-with-retry.retries.moch XX:XX 3 2 1 - - │ + │ aEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✖ 8 of 8 failed (100%) XX:XX 14 5 9 - - + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-but-always-fail" / exercises experimental-retries suite to verify console reporter and final status code are correct (stopIfAnyPassed=true).'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 8 found (can-retry-from-afterEach.retries.mochaEvents.cy.js, can-retry-from-before │ + │ Each.retries.mochaEvents.cy.js, cant-retry-from-before.retries.mochaEvents.cy.js, │ + │ does-not-serialize-dom-error.cy.js, simple-fail.retries.mochaEvents.cy.js, test-re │ + │ try-with-h...) │ + │ Searched: cypress/e2e/runner/experimental-retries/* │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: can-retry-from-afterEach.retries.mochaEvents.cy.js (1 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✓(Attempt 2 of 10) test 1 + ✖ test 1 + ✓ test 2 + ✓ test 3 + + suite 2 + ✖(Attempt 1 of 10) test 1 + ✖(Attempt 2 of 10) test 1 + ✓(Attempt 3 of 10) test 1 + ✖ test 1 + + suite 3 + ✓ test 1 + + + 3 passing + 2 failing + + 1) suite 1 + test 1: + + [object Object] + Error + [stack trace lines] + + 2) suite 2 + test 1: + + [object Object] + Error + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 5 │ + │ Passing: 3 │ + │ Failing: 2 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: can-retry-from-afterEach.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: can-retry-from-beforeEach.retries.mochaEvents.cy.js (2 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✓(Attempt 2 of 10) test 1 + ✖ test 1 + + + 0 passing + 1 failing + + 1) suite 1 + test 1: + + [object Object] + Error + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: can-retry-from-beforeEach.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: cant-retry-from-before.retries.mochaEvents.cy.js (3 of 8) + + + suite 1 + ✖ "before all" hook for "test 1" (NaNms) + + + 0 passing + 1 failing + + 1) suite 1 + "before all" hook for "test 1": + Error: Because this error occurred during a \`before all\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + +Although you have test retries enabled, we do not retry tests when \`before all\` or \`after all\` hooks fail + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: cant-retry-from-before.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: does-not-serialize-dom-error.cy.js (4 of 8) + + + ✖(Attempt 1 of 10) visits + ✖(Attempt 2 of 10) visits + ✖(Attempt 3 of 10) visits + ✖(Attempt 4 of 10) visits + ✖(Attempt 5 of 10) visits + ✖(Attempt 6 of 10) visits + ✖(Attempt 7 of 10) visits + ✖(Attempt 8 of 10) visits + ✖(Attempt 9 of 10) visits + ✖(Attempt 10 of 10) visits + ✖ visits + + 0 passing + 1 failing + + 1) visits: + AssertionError: Timed out retrying after 200ms: expected '' not to be 'visible' + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: does-not-serialize-dom-error.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: simple-fail.retries.mochaEvents.cy.js (5 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✓(Attempt 2 of 10) test 1 + ✖ test 1 + + + 0 passing + 1 failing + + 1) suite 1 + test 1: + [object Object] +Error: test 1 + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: simple-fail.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: test-retry-with-hooks.retries.mochaEvents.cy.js (6 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✓(Attempt 2 of 10) test 1 + ✖ test 1 + + + 0 passing + 1 failing + + 1) suite 1 + test 1: + [object Object] +Error: test 1 + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: test-retry-with-hooks.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: test-retry-with-only.retries.mochaEvents.cy.js (7 of 8) + + + suite 1 + ✖(Attempt 1 of 10) test 2 + ✓(Attempt 2 of 10) test 2 + ✖ test 2 + + + 0 passing + 1 failing + + 1) suite 1 + test 2: + [object Object] +Error: test 2 + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: test-retry-with-only.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: three-tests-with-retry.retries.mochaEvents.cy.js (8 of 8) + + + suite 1 + ✓ test 1 + ✖(Attempt 1 of 10) test 2 + ✖(Attempt 2 of 10) test 2 + ✓(Attempt 3 of 10) test 2 + ✖ test 2 + ✓ test 3 + + + 2 passing + 1 failing + + 1) suite 1 + test 2: + + [object Object] + Error + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 3 │ + │ Passing: 2 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: three-tests-with-retry.retries.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✖ can-retry-from-afterEach.retries.mo XX:XX 5 3 2 - - │ + │ chaEvents.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ can-retry-from-beforeEach.retries.m XX:XX 1 - 1 - - │ + │ ochaEvents.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ cant-retry-from-before.retries.moch XX:XX 1 - 1 - - │ + │ aEvents.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ does-not-serialize-dom-error.cy.js XX:XX 1 - 1 - - │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ simple-fail.retries.mochaEvents.cy. XX:XX 1 - 1 - - │ + │ js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ test-retry-with-hooks.retries.mocha XX:XX 1 - 1 - - │ + │ Events.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ test-retry-with-only.retries.mochaE XX:XX 1 - 1 - - │ + │ vents.cy.js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ three-tests-with-retry.retries.moch XX:XX 3 2 1 - - │ + │ aEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✖ 8 of 8 failed (100%) XX:XX 14 5 9 - - + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-but-always-fail" / exercises experimental-retries hook failures to verify console reporter and final status code are correct.'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 4 found (fail-with-afterEach.mochaEvents.cy.js, fail-with-beforeEach.mochaEvents.c │ + │ y.js, fail-with-after.mochaEvents.cy.js, fail-with-before.mochaEvents.cy.js) │ + │ Searched: cypress/e2e/runner/fail-with-afterEach.mochaEvents.cy.js, cypress/e2e/runner/fail- │ + │ with-beforeEach.mochaEvents.cy.js, cypress/e2e/runner/fail-with-after.mochaEvents. │ + │ cy.js, cypress/e2e/runner/fail-with-before.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: fail-with-afterEach.mochaEvents.cy.js (1 of 4) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✖(Attempt 2 of 10) test 1 + ✖(Attempt 3 of 10) test 1 + ✖(Attempt 4 of 10) test 1 + ✖(Attempt 5 of 10) test 1 + ✖(Attempt 6 of 10) test 1 + ✖(Attempt 7 of 10) test 1 + ✖(Attempt 8 of 10) test 1 + ✖(Attempt 9 of 10) test 1 + ✖(Attempt 10 of 10) "after each" hook for "test 1" + ✖ "after each" hook for "test 1" + + + 0 passing + 1 failing + + 1) suite 1 + "after each" hook for "test 1": + Error: After each error + +Because this error occurred during a \`after each\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 2 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 1 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: fail-with-afterEach.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: fail-with-beforeEach.mochaEvents.cy.js (2 of 4) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✖(Attempt 2 of 10) test 1 + ✖(Attempt 3 of 10) test 1 + ✖(Attempt 4 of 10) test 1 + ✖(Attempt 5 of 10) test 1 + ✖(Attempt 6 of 10) test 1 + ✖(Attempt 7 of 10) test 1 + ✖(Attempt 8 of 10) test 1 + ✖(Attempt 9 of 10) test 1 + ✖(Attempt 10 of 10) "before each" hook for "test 1" + ✖ "before each" hook for "test 1" + + + 0 passing + 1 failing + + 1) suite 1 + "before each" hook for "test 1": + Error: beforeEach + +Because this error occurred during a \`before each\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 2 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 1 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: fail-with-beforeEach.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: fail-with-after.mochaEvents.cy.js (3 of 4) + + + suite 1 + ✓ test 1 + ✖ "after all" hook for "test 2" (NaNms) + + + 1 passing + 1 failing + + 1) suite 1 + "after all" hook for "test 2": + Error: Error! + +Because this error occurred during a \`after all\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + +Although you have test retries enabled, we do not retry tests when \`before all\` or \`after all\` hooks fail + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 2 │ + │ Passing: 1 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: fail-with-after.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: fail-with-before.mochaEvents.cy.js (4 of 4) + + + suite 1 + ✖ "before all" hook for "test 1" (NaNms) + + + 0 passing + 1 failing + + 1) suite 1 + "before all" hook for "test 1": + Error: before + +Because this error occurred during a \`before all\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + +Although you have test retries enabled, we do not retry tests when \`before all\` or \`after all\` hooks fail + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: fail-with-before.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✖ fail-with-afterEach.mochaEvents.cy. XX:XX 2 - 1 - 1 │ + │ js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ fail-with-beforeEach.mochaEvents.cy XX:XX 2 - 1 - 1 │ + │ .js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ fail-with-after.mochaEvents.cy.js XX:XX 2 1 1 - - │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ fail-with-before.mochaEvents.cy.js XX:XX 1 - 1 - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✖ 4 of 4 failed (100%) XX:XX 7 1 4 - 2 + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-but-always-fail" / exercises experimental-retries hook failures to verify console reporter and final status code are correct (stopIfAnyPassed=true).'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 4 found (fail-with-afterEach.mochaEvents.cy.js, fail-with-beforeEach.mochaEvents.c │ + │ y.js, fail-with-after.mochaEvents.cy.js, fail-with-before.mochaEvents.cy.js) │ + │ Searched: cypress/e2e/runner/fail-with-afterEach.mochaEvents.cy.js, cypress/e2e/runner/fail- │ + │ with-beforeEach.mochaEvents.cy.js, cypress/e2e/runner/fail-with-after.mochaEvents. │ + │ cy.js, cypress/e2e/runner/fail-with-before.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: fail-with-afterEach.mochaEvents.cy.js (1 of 4) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✖(Attempt 2 of 10) test 1 + ✖(Attempt 3 of 10) test 1 + ✖(Attempt 4 of 10) test 1 + ✖(Attempt 5 of 10) test 1 + ✖(Attempt 6 of 10) test 1 + ✖(Attempt 7 of 10) test 1 + ✖(Attempt 8 of 10) test 1 + ✖(Attempt 9 of 10) test 1 + ✖(Attempt 10 of 10) "after each" hook for "test 1" + ✖ "after each" hook for "test 1" + + + 0 passing + 1 failing + + 1) suite 1 + "after each" hook for "test 1": + Error: After each error + +Because this error occurred during a \`after each\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 2 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 1 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: fail-with-afterEach.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: fail-with-beforeEach.mochaEvents.cy.js (2 of 4) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✖(Attempt 2 of 10) test 1 + ✖(Attempt 3 of 10) test 1 + ✖(Attempt 4 of 10) test 1 + ✖(Attempt 5 of 10) test 1 + ✖(Attempt 6 of 10) test 1 + ✖(Attempt 7 of 10) test 1 + ✖(Attempt 8 of 10) test 1 + ✖(Attempt 9 of 10) test 1 + ✖(Attempt 10 of 10) "before each" hook for "test 1" + ✖ "before each" hook for "test 1" + + + 0 passing + 1 failing + + 1) suite 1 + "before each" hook for "test 1": + Error: beforeEach + +Because this error occurred during a \`before each\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 2 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 1 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: fail-with-beforeEach.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: fail-with-after.mochaEvents.cy.js (3 of 4) + + + suite 1 + ✓ test 1 + ✖ "after all" hook for "test 2" (NaNms) + + + 1 passing + 1 failing + + 1) suite 1 + "after all" hook for "test 2": + Error: Error! + +Because this error occurred during a \`after all\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + +Although you have test retries enabled, we do not retry tests when \`before all\` or \`after all\` hooks fail + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 2 │ + │ Passing: 1 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: fail-with-after.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: fail-with-before.mochaEvents.cy.js (4 of 4) + + + suite 1 + ✖ "before all" hook for "test 1" (NaNms) + + + 0 passing + 1 failing + + 1) suite 1 + "before all" hook for "test 1": + Error: before + +Because this error occurred during a \`before all\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + +Although you have test retries enabled, we do not retry tests when \`before all\` or \`after all\` hooks fail + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: fail-with-before.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✖ fail-with-afterEach.mochaEvents.cy. XX:XX 2 - 1 - 1 │ + │ js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ fail-with-beforeEach.mochaEvents.cy XX:XX 2 - 1 - 1 │ + │ .js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ fail-with-after.mochaEvents.cy.js XX:XX 2 1 1 - - │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ fail-with-before.mochaEvents.cy.js XX:XX 1 - 1 - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✖ 4 of 4 failed (100%) XX:XX 7 1 4 - 2 + + +` + +exports['e2e retries.experimentalStrategy / "detect-flake-and-pass-on-threshold" / exercises experimental-retries hook failures to verify console reporter and final status code are correct.'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 4 found (fail-with-afterEach.mochaEvents.cy.js, fail-with-beforeEach.mochaEvents.c │ + │ y.js, fail-with-after.mochaEvents.cy.js, fail-with-before.mochaEvents.cy.js) │ + │ Searched: cypress/e2e/runner/fail-with-afterEach.mochaEvents.cy.js, cypress/e2e/runner/fail- │ + │ with-beforeEach.mochaEvents.cy.js, cypress/e2e/runner/fail-with-after.mochaEvents. │ + │ cy.js, cypress/e2e/runner/fail-with-before.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: fail-with-afterEach.mochaEvents.cy.js (1 of 4) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✖(Attempt 2 of 10) test 1 + ✖(Attempt 3 of 10) test 1 + ✖(Attempt 4 of 10) test 1 + ✖(Attempt 5 of 10) test 1 + ✖(Attempt 6 of 10) "after each" hook for "test 1" + ✖ "after each" hook for "test 1" + + + 0 passing + 1 failing + + 1) suite 1 + "after each" hook for "test 1": + Error: After each error + +Because this error occurred during a \`after each\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 2 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 1 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: fail-with-afterEach.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: fail-with-beforeEach.mochaEvents.cy.js (2 of 4) + + + suite 1 + ✖(Attempt 1 of 10) test 1 + ✖(Attempt 2 of 10) test 1 + ✖(Attempt 3 of 10) test 1 + ✖(Attempt 4 of 10) test 1 + ✖(Attempt 5 of 10) test 1 + ✖(Attempt 6 of 10) "before each" hook for "test 1" + ✖ "before each" hook for "test 1" + + + 0 passing + 1 failing + + 1) suite 1 + "before each" hook for "test 1": + Error: beforeEach + +Because this error occurred during a \`before each\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 2 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 1 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: fail-with-beforeEach.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: fail-with-after.mochaEvents.cy.js (3 of 4) + + + suite 1 + ✓ test 1 + ✖ "after all" hook for "test 2" (NaNms) + + + 1 passing + 1 failing + + 1) suite 1 + "after all" hook for "test 2": + Error: Error! + +Because this error occurred during a \`after all\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + +Although you have test retries enabled, we do not retry tests when \`before all\` or \`after all\` hooks fail + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 2 │ + │ Passing: 1 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: fail-with-after.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: fail-with-before.mochaEvents.cy.js (4 of 4) + + + suite 1 + ✖ "before all" hook for "test 1" (NaNms) + + + 0 passing + 1 failing + + 1) suite 1 + "before all" hook for "test 1": + Error: before + +Because this error occurred during a \`before all\` hook we are skipping the remaining tests in the current suite: \`suite 1\` + +Although you have test retries enabled, we do not retry tests when \`before all\` or \`after all\` hooks fail + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 0 │ + │ Failing: 1 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: fail-with-before.mochaEvents.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✖ fail-with-afterEach.mochaEvents.cy. XX:XX 2 - 1 - 1 │ + │ js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ fail-with-beforeEach.mochaEvents.cy XX:XX 2 - 1 - 1 │ + │ .js │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ fail-with-after.mochaEvents.cy.js XX:XX 2 1 1 - - │ + ├────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ ✖ fail-with-before.mochaEvents.cy.js XX:XX 1 - 1 - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✖ 4 of 4 failed (100%) XX:XX 7 1 4 - 2 + + +` diff --git a/system-tests/__snapshots__/protocol_spec.js b/system-tests/__snapshots__/protocol_spec.js index 5d85bd7468db..98c23b7d17ac 100644 --- a/system-tests/__snapshots__/protocol_spec.js +++ b/system-tests/__snapshots__/protocol_spec.js @@ -610,6 +610,12 @@ exports['e2e events'] = ` "preAfterTest": [ { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -681,6 +687,12 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -763,6 +775,12 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -845,6 +863,12 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -927,6 +951,12 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1009,6 +1039,12 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1091,6 +1127,12 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1173,6 +1215,12 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1255,6 +1303,12 @@ exports['e2e events'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1338,6 +1392,12 @@ exports['e2e events'] = ` ], "afterTest": [ { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1405,6 +1465,12 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1483,6 +1549,12 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1561,6 +1633,12 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1639,6 +1717,12 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1717,6 +1801,12 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1795,6 +1885,12 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1873,6 +1969,12 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -1951,6 +2053,12 @@ exports['e2e events'] = ` "_slow": 10000 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [ { @@ -4974,7 +5082,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": 0, @@ -5003,7 +5111,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": 0, @@ -5032,7 +5140,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": 0, @@ -5061,7 +5169,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": 0, @@ -5071,6 +5179,12 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "preAfterTest": [ { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -5102,7 +5216,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -5115,6 +5229,12 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -5146,7 +5266,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -5159,6 +5279,12 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -5190,7 +5316,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -5203,6 +5329,12 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -5234,7 +5366,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -5248,6 +5380,12 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` ], "afterTest": [ { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -5280,7 +5418,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -5288,6 +5426,12 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "_slow": 250 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -5320,7 +5464,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -5328,6 +5472,12 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "_slow": 250 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -5360,7 +5510,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -5368,6 +5518,12 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "_slow": 250 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -5400,7 +5556,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -5437,7 +5593,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addSuite (cypress:///../driver/src/cypress/mocha.ts:359:86)\\n at Suite.create (cypress:///../driver/node_modules/mocha/lib/suite.js:33:10)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:123:27)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at ./src/components/HelloEarth.cy.jsx (http://localhost:2121/__cypress/src/spec-0.js:16:1)\\n at Function.__webpack_require__ (http://localhost:2121/__cypress/src/main.js:114:42)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addSuite (cypress:///../driver/src/cypress/mocha.ts:488:86)\\n at Suite.create (cypress:///../driver/node_modules/mocha/lib/suite.js:33:10)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:123:27)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at ./src/components/HelloEarth.cy.jsx (http://localhost:2121/__cypress/src/spec-0.js:16:1)\\n at Function.__webpack_require__ (http://localhost:2121/__cypress/src/main.js:114:42)" }, "retries": -1, "_slow": 250, @@ -5459,7 +5615,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": -1, @@ -5490,7 +5646,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": -1, @@ -5540,7 +5696,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addSuite (cypress:///../driver/src/cypress/mocha.ts:359:86)\\n at Suite.create (cypress:///../driver/node_modules/mocha/lib/suite.js:33:10)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:123:27)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at ./src/components/HelloMars.cy.jsx (http://localhost:2121/__cypress/src/spec-1.js:16:1)\\n at Function.__webpack_require__ (http://localhost:2121/__cypress/src/main.js:114:42)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addSuite (cypress:///../driver/src/cypress/mocha.ts:488:86)\\n at Suite.create (cypress:///../driver/node_modules/mocha/lib/suite.js:33:10)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:123:27)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at ./src/components/HelloMars.cy.jsx (http://localhost:2121/__cypress/src/spec-1.js:16:1)\\n at Function.__webpack_require__ (http://localhost:2121/__cypress/src/main.js:114:42)" }, "retries": -1, "_slow": 250, @@ -5562,7 +5718,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": -1, @@ -5593,7 +5749,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": -1, @@ -6669,7 +6825,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": 0, @@ -6698,7 +6854,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": 0, @@ -6727,7 +6883,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": 0, @@ -6756,7 +6912,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": 0, @@ -6766,6 +6922,12 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "preAfterTest": [ { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -6797,7 +6959,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -6810,6 +6972,12 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -6841,7 +7009,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -6854,6 +7022,12 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -6885,7 +7059,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -6898,6 +7072,12 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` }, { "test": { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -6929,7 +7109,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -6943,6 +7123,12 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` ], "afterTest": [ { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -6975,7 +7161,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -6983,6 +7169,12 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "_slow": 250 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -7015,7 +7207,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -7023,6 +7215,12 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "_slow": 250 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -7055,7 +7253,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -7063,6 +7261,12 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "_slow": 250 }, { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, "_testConfig": { "testConfigList": [], "unverifiedTestConfig": {}, @@ -7095,7 +7299,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "final": true, "currentRetry": 0, @@ -7132,7 +7336,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addSuite (cypress:///../driver/src/cypress/mocha.ts:359:86)\\n at Suite.create (cypress:///../driver/node_modules/mocha/lib/suite.js:33:10)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:123:27)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at ./src/components/HelloEarth.cy.jsx (http://localhost:2121/__cypress/src/spec-0.js:16:1)\\n at Function.__webpack_require__ (http://localhost:2121/__cypress/src/main.js:114:42)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addSuite (cypress:///../driver/src/cypress/mocha.ts:488:86)\\n at Suite.create (cypress:///../driver/node_modules/mocha/lib/suite.js:33:10)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:123:27)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at ./src/components/HelloEarth.cy.jsx (http://localhost:2121/__cypress/src/spec-0.js:16:1)\\n at Function.__webpack_require__ (http://localhost:2121/__cypress/src/main.js:114:42)" }, "retries": -1, "_slow": 250, @@ -7154,7 +7358,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": -1, @@ -7185,7 +7389,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-0.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": -1, @@ -7235,7 +7439,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addSuite (cypress:///../driver/src/cypress/mocha.ts:359:86)\\n at Suite.create (cypress:///../driver/node_modules/mocha/lib/suite.js:33:10)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:123:27)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at ./src/components/HelloMars.cy.jsx (http://localhost:2121/__cypress/src/spec-1.js:16:1)\\n at Function.__webpack_require__ (http://localhost:2121/__cypress/src/main.js:114:42)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addSuite (cypress:///../driver/src/cypress/mocha.ts:488:86)\\n at Suite.create (cypress:///../driver/node_modules/mocha/lib/suite.js:33:10)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:123:27)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at ./src/components/HelloMars.cy.jsx (http://localhost:2121/__cypress/src/spec-1.js:16:1)\\n at Function.__webpack_require__ (http://localhost:2121/__cypress/src/main.js:114:42)" }, "retries": -1, "_slow": 250, @@ -7257,7 +7461,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:17:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": -1, @@ -7288,7 +7492,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "line": 94, "column": 17, "whitespace": " ", - "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:333:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:54:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:115:14)" + "stack": "Error\\n at Object.getInvocationDetails (cypress:///../driver/src/cypress/stack_utils.ts:94:17)\\n at Suite.addTest (cypress:///../driver/src/cypress/mocha.ts:462:85)\\n at context.it.context.specify (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:88:13)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)\\n at Suite. (http://localhost:2121/__cypress/src/spec-1.js:21:3)\\n at Object.create (cypress:///../driver/node_modules/mocha/lib/interfaces/common.js:140:19)\\n at context.describe.context.context (cypress:///../driver/node_modules/mocha/lib/interfaces/bdd.js:41:27)\\n at createRunnable (cypress:///../driver/src/cypress/mocha.ts:126:31)\\n at eval (cypress:///../driver/src/cypress/mocha.ts:187:14)" }, "currentRetry": 0, "retries": -1, diff --git a/system-tests/__snapshots__/testConfigOverrides_spec.ts.js b/system-tests/__snapshots__/testConfigOverrides_spec.ts.js index 27e20b80fa25..9358807ec384 100644 --- a/system-tests/__snapshots__/testConfigOverrides_spec.ts.js +++ b/system-tests/__snapshots__/testConfigOverrides_spec.ts.js @@ -310,7 +310,7 @@ https://on.cypress.io/config runs: CypressError: The config passed to your suite-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -359,7 +359,7 @@ https://on.cypress.io/config "before all" hook for "test config override throws error": CypressError: The config passed to your test-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -373,7 +373,7 @@ Because this error occurred during a \`before all\` hook we are skipping the rem test config override throws error: CypressError: The config passed to your test-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -518,7 +518,7 @@ Instead the value was: \`"null"\` runs: CypressError: The config passed to your suite-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -571,7 +571,7 @@ https://on.cypress.io/config "before all" hook for "test config override throws error": CypressError: The config passed to your test-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -586,7 +586,7 @@ Because this error occurred during a \`before all\` hook we are skipping the rem test config override throws error: CypressError: The config passed to your test-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -666,7 +666,7 @@ exports['testConfigOverrides / correctly fails when invalid config values for it throws error at the correct line number: CypressError: The config passed to your suite-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -972,7 +972,7 @@ https://on.cypress.io/config runs: CypressError: The config passed to your suite-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -1017,7 +1017,7 @@ https://on.cypress.io/config "before all" hook for "test config override throws error": CypressError: The config passed to your test-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -1030,7 +1030,7 @@ Because this error occurred during a \`before all\` hook we are skipping the rem test config override throws error: CypressError: The config passed to your test-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -1174,7 +1174,7 @@ Instead the value was: \`"null"\` runs: CypressError: The config passed to your suite-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -1223,7 +1223,7 @@ https://on.cypress.io/config "before all" hook for "test config override throws error": CypressError: The config passed to your test-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -1237,7 +1237,7 @@ Because this error occurred during a \`before all\` hook we are skipping the rem test config override throws error: CypressError: The config passed to your test-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -1316,7 +1316,7 @@ exports['testConfigOverrides / correctly fails when invalid config values for it throws error at the correct line number: CypressError: The config passed to your suite-level overrides has the following validation error: -Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers or nulls. +Expected \`retries\` to be a positive number or null or an object with keys "openMode" and "runMode" with values of numbers, booleans, or nulls, or experimental configuration with key "experimentalStrategy" with value "detect-flake-but-always-fail" or "detect-flake-and-pass-on-threshold" and key "experimentalOptions" to provide a valid configuration for your selected strategy. Instead the value was: \`"1"\` @@ -1354,3 +1354,279 @@ https://on.cypress.io/config ` + +exports['testConfigOverrides / experimental retries specific behavior / fails when attempting to set experimental retries as override [chrome,electron]'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 1 found (override-with-experimental-retries.cy.js) │ + │ Searched: cypress/e2e/override-with-experimental-retries.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: override-with-experimental-retries.cy.js (1 of 1) + + + overriding legacy retries with experimental retries + at the describe level + 1) sets the config + at the test level + 2) sets the config + + + 0 passing + 2 failing + + 1) overriding legacy retries with experimental retries + at the describe level + sets the config: + CypressError: The config passed to your suite-level overrides has the following validation error: + +CypressError: The \`retries.experimentalStrategy\` configuration can only be set globally. + +https://on.cypress.io/config + Error + [stack trace lines] + + 2) overriding legacy retries with experimental retries + at the test level + sets the config: + CypressError: The config passed to your test-level overrides has the following validation error: + +CypressError: The \`retries.experimentalStrategy\` configuration can only be set globally. + +https://on.cypress.io/config + Error + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 2 │ + │ Passing: 0 │ + │ Failing: 2 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: override-with-experimental-retries.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✖ override-with-experimental-retries. XX:XX 2 - 2 - - │ + │ cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✖ 1 of 1 failed (100%) XX:XX 2 - 2 - - + + +` + +exports['testConfigOverrides / experimental retries specific behavior / succeeds when setting legacy retries as an override to experimental retries [chrome,electron]'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 1 found (override-with-legacy-retries.cy.js) │ + │ Searched: cypress/e2e/override-with-legacy-retries.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: override-with-legacy-retries.cy.js (1 of 1) + + + overriding experimental retries with legacy retries + ✓ sets the config + + + 1 passing + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 1 │ + │ Failing: 0 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: override-with-legacy-retries.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✔ override-with-legacy-retries.cy.js XX:XX 1 1 - - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✔ All specs passed! XX:XX 1 1 - - - + + +` + +exports['testConfigOverrides / experimental retries specific behavior / fails when attempting to set experimental retries as override [firefox]'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 1 found (override-with-experimental-retries.cy.js) │ + │ Searched: cypress/e2e/override-with-experimental-retries.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: override-with-experimental-retries.cy.js (1 of 1) + + + overriding legacy retries with experimental retries + at the describe level + 1) sets the config + at the test level + 2) sets the config + + + 0 passing + 2 failing + + 1) overriding legacy retries with experimental retries + at the describe level + sets the config: + CypressError: The config passed to your suite-level overrides has the following validation error: + +CypressError: The \`retries.experimentalStrategy\` configuration can only be set globally. + +https://on.cypress.io/config + [stack trace lines] + + 2) overriding legacy retries with experimental retries + at the test level + sets the config: + CypressError: The config passed to your test-level overrides has the following validation error: + +CypressError: The \`retries.experimentalStrategy\` configuration can only be set globally. + +https://on.cypress.io/config + [stack trace lines] + + + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 2 │ + │ Passing: 0 │ + │ Failing: 2 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: override-with-experimental-retries.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✖ override-with-experimental-retries. XX:XX 2 - 2 - - │ + │ cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✖ 1 of 1 failed (100%) XX:XX 2 - 2 - - + + +` + +exports['testConfigOverrides / experimental retries specific behavior / succeeds when setting legacy retries as an override to experimental retries [firefox]'] = ` + +==================================================================================================== + + (Run Starting) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Cypress: 1.2.3 │ + │ Browser: FooBrowser 88 │ + │ Specs: 1 found (override-with-legacy-retries.cy.js) │ + │ Searched: cypress/e2e/override-with-legacy-retries.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +──────────────────────────────────────────────────────────────────────────────────────────────────── + + Running: override-with-legacy-retries.cy.js (1 of 1) + + + overriding experimental retries with legacy retries + ✓ sets the config + + + 1 passing + + + (Results) + + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ Tests: 1 │ + │ Passing: 1 │ + │ Failing: 0 │ + │ Pending: 0 │ + │ Skipped: 0 │ + │ Screenshots: 0 │ + │ Video: false │ + │ Duration: X seconds │ + │ Spec Ran: override-with-legacy-retries.cy.js │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + + +==================================================================================================== + + (Run Finished) + + + Spec Tests Passing Failing Pending Skipped + ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ ✔ override-with-legacy-retries.cy.js XX:XX 1 1 - - - │ + └────────────────────────────────────────────────────────────────────────────────────────────────┘ + ✔ All specs passed! XX:XX 1 1 - - - + + +` diff --git a/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/can-retry-from-afterEach.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/can-retry-from-afterEach.retries.mochaEvents.cy.js new file mode 100644 index 000000000000..d9cf2d13fda7 --- /dev/null +++ b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/can-retry-from-afterEach.retries.mochaEvents.cy.js @@ -0,0 +1,37 @@ +let i = 0 + +afterEach(() => { + if (i === 0) { + i++ + throw new Error('') + } +}) + +describe('suite 1', () => { + before(() => {}) + beforeEach(() => {}) + beforeEach(() => {}) + afterEach(() => {}) + after(() => {}) + + it('test 1', () => {}) + it('test 2', () => {}) + it('test 3', () => {}) +}) + +describe('suite 2', () => { + let j = 0 + + afterEach(() => { + if (j === 0 || j === 1) { + j++ + throw new Error('') + } + }) + + it('test 1', () => {}) +}) + +describe('suite 3', () => { + it('test 1', () => {}) +}) diff --git a/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/can-retry-from-beforeEach.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/can-retry-from-beforeEach.retries.mochaEvents.cy.js new file mode 100644 index 000000000000..bc6ec2becf2f --- /dev/null +++ b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/can-retry-from-beforeEach.retries.mochaEvents.cy.js @@ -0,0 +1,20 @@ +describe('suite 1', () => { + before(() => {}) + beforeEach(() => {}) + + let i = 0 + + beforeEach(() => { + if (i === 0) { + i++ + throw new Error('') + } + }) + + beforeEach(() => {}) + + afterEach(() => {}) + after(() => {}) + + it('test 1', () => {}) +}) diff --git a/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/cant-retry-from-before.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/cant-retry-from-before.retries.mochaEvents.cy.js new file mode 100644 index 000000000000..2f6ff5461979 --- /dev/null +++ b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/cant-retry-from-before.retries.mochaEvents.cy.js @@ -0,0 +1,17 @@ +describe('suite 1', () => { + let i = 0 + + before(() => { + if (i === 0) { + i++ + throw new Error('') + } + }) + + beforeEach(() => {}) + beforeEach(() => {}) + afterEach(() => {}) + afterEach(() => {}) + after(() => {}) + it('test 1', () => {}) +}) diff --git a/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/does-not-serialize-dom-error.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/does-not-serialize-dom-error.cy.js new file mode 100644 index 000000000000..7f3d58229771 --- /dev/null +++ b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/does-not-serialize-dom-error.cy.js @@ -0,0 +1,4 @@ +it('visits', { defaultCommandTimeout: 200 }, () => { + cy.visit('cypress/fixtures/dom.html') + cy.get('#button').should('not.be.visible') +}) diff --git a/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/simple-fail.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/simple-fail.retries.mochaEvents.cy.js new file mode 100644 index 000000000000..3d3fba9792fb --- /dev/null +++ b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/simple-fail.retries.mochaEvents.cy.js @@ -0,0 +1,10 @@ +describe('suite 1', () => { + let i = 0 + + it('test 1', () => { + if (i === 0) { + i++ + throw new Error('test 1') + } + }) +}) diff --git a/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/test-retry-with-hooks.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/test-retry-with-hooks.retries.mochaEvents.cy.js new file mode 100644 index 000000000000..f804971f91ee --- /dev/null +++ b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/test-retry-with-hooks.retries.mochaEvents.cy.js @@ -0,0 +1,15 @@ +describe('suite 1', () => { + before(() => {}) + beforeEach(() => {}) + after(() => {}) + afterEach(() => {}) + + let i = 0 + + it('test 1', () => { + if (i === 0) { + i++ + throw new Error('test 1') + } + }) +}) diff --git a/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/test-retry-with-only.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/test-retry-with-only.retries.mochaEvents.cy.js new file mode 100644 index 000000000000..5903f03e5140 --- /dev/null +++ b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/test-retry-with-only.retries.mochaEvents.cy.js @@ -0,0 +1,20 @@ +describe('suite 1', () => { + before(() => {}) + beforeEach(() => {}) + after(() => {}) + afterEach(() => {}) + + it('test 1', () => {}) + + let i = 0 + + // eslint-disable-next-line mocha/no-exclusive-tests + it.only('test 2', () => { + if (i === 0) { + i++ + throw new Error('test 2') + } + }) + + it('test 3', () => {}) +}) diff --git a/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/three-tests-with-retry.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/three-tests-with-retry.retries.mochaEvents.cy.js new file mode 100644 index 000000000000..ead03d7d9256 --- /dev/null +++ b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/experimental-retries/three-tests-with-retry.retries.mochaEvents.cy.js @@ -0,0 +1,19 @@ +describe('suite 1', () => { + before(() => {}) + beforeEach(() => {}) + afterEach(() => {}) + after(() => {}) + + it('test 1', () => {}) + + let i = 0 + + it('test 2', () => { + if (i <= 1) { + i++ + throw new Error('') + } + }) + + it('test 3', () => {}) +}) diff --git a/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-afterEach.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-afterEach.mochaEvents.cy.js index 6800a6f8b18d..406218b6b61e 100644 --- a/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-afterEach.mochaEvents.cy.js +++ b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-afterEach.mochaEvents.cy.js @@ -4,4 +4,5 @@ describe('suite 1', () => { }) it('test 1', () => {}) + it('test 2', () => {}) }) diff --git a/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-beforeEach.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-beforeEach.mochaEvents.cy.js index 9851813199dd..a041c8311687 100644 --- a/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-beforeEach.mochaEvents.cy.js +++ b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-beforeEach.mochaEvents.cy.js @@ -4,4 +4,5 @@ describe('suite 1', () => { }) it('test 1', () => {}) + it('test 2', () => {}) }) diff --git a/system-tests/projects/detect-flake-and-pass-on-threshold/cypress.config.js b/system-tests/projects/detect-flake-and-pass-on-threshold/cypress.config.js new file mode 100644 index 000000000000..46882728e397 --- /dev/null +++ b/system-tests/projects/detect-flake-and-pass-on-threshold/cypress.config.js @@ -0,0 +1,15 @@ +module.exports = { + numTestsKeptInMemory: 0, + e2e: { + supportFile: false, + retries: { + openMode: true, + runMode: true, + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 9, + passesRequired: 5, + }, + }, + }, +} diff --git a/system-tests/projects/detect-flake-and-pass-on-threshold/package.json b/system-tests/projects/detect-flake-and-pass-on-threshold/package.json new file mode 100644 index 000000000000..f9ba6239dbc5 --- /dev/null +++ b/system-tests/projects/detect-flake-and-pass-on-threshold/package.json @@ -0,0 +1,3 @@ +{ + "projectFixtureDirectory": "runner-specs" +} \ No newline at end of file diff --git a/system-tests/projects/detect-flake-but-always-fail-stop-any-passed/cypress.config.js b/system-tests/projects/detect-flake-but-always-fail-stop-any-passed/cypress.config.js new file mode 100644 index 000000000000..5886802aa9d4 --- /dev/null +++ b/system-tests/projects/detect-flake-but-always-fail-stop-any-passed/cypress.config.js @@ -0,0 +1,15 @@ +module.exports = { + numTestsKeptInMemory: 0, + e2e: { + supportFile: false, + retries: { + openMode: true, + runMode: true, + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 9, + stopIfAnyPassed: true, + }, + }, + }, +} diff --git a/system-tests/projects/detect-flake-but-always-fail-stop-any-passed/package.json b/system-tests/projects/detect-flake-but-always-fail-stop-any-passed/package.json new file mode 100644 index 000000000000..f9ba6239dbc5 --- /dev/null +++ b/system-tests/projects/detect-flake-but-always-fail-stop-any-passed/package.json @@ -0,0 +1,3 @@ +{ + "projectFixtureDirectory": "runner-specs" +} \ No newline at end of file diff --git a/system-tests/projects/detect-flake-but-always-fail/cypress.config.js b/system-tests/projects/detect-flake-but-always-fail/cypress.config.js new file mode 100644 index 000000000000..b9f7f8c7bf0f --- /dev/null +++ b/system-tests/projects/detect-flake-but-always-fail/cypress.config.js @@ -0,0 +1,15 @@ +module.exports = { + numTestsKeptInMemory: 0, + e2e: { + supportFile: false, + retries: { + openMode: true, + runMode: true, + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 9, + stopIfAnyPassed: false, + }, + }, + }, +} diff --git a/system-tests/projects/detect-flake-but-always-fail/package.json b/system-tests/projects/detect-flake-but-always-fail/package.json new file mode 100644 index 000000000000..f9ba6239dbc5 --- /dev/null +++ b/system-tests/projects/detect-flake-but-always-fail/package.json @@ -0,0 +1,3 @@ +{ + "projectFixtureDirectory": "runner-specs" +} \ No newline at end of file diff --git a/system-tests/projects/experimental-retries/cypress-experimental-retries.config.js b/system-tests/projects/experimental-retries/cypress-experimental-retries.config.js new file mode 100644 index 000000000000..910f7cbbb4a4 --- /dev/null +++ b/system-tests/projects/experimental-retries/cypress-experimental-retries.config.js @@ -0,0 +1,23 @@ +module.exports = { + e2e: { + supportFile: false, + setupNodeEvents (on, config) { + // in the case the tests needed to be debugged: + + // on('before:browser:launch', (browser, launchOptions) => { + // launchOptions.args.push('--auto-open-devtools-for-tabs') + + // return launchOptions + // }) + }, + }, + retries: { + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + runMode: true, + openMode: true, + experimentalOptions: { + maxRetries: 3, + passesRequired: 1, + }, + }, +} diff --git a/system-tests/projects/experimental-retries/cypress-legacy-retries.config.js b/system-tests/projects/experimental-retries/cypress-legacy-retries.config.js new file mode 100644 index 000000000000..d5f1b46c2d38 --- /dev/null +++ b/system-tests/projects/experimental-retries/cypress-legacy-retries.config.js @@ -0,0 +1,18 @@ +module.exports = { + e2e: { + supportFile: false, + setupNodeEvents (on, config) { + // in the case the tests needed to be debugged: + + // on('before:browser:launch', (browser, launchOptions) => { + // launchOptions.args.push('--auto-open-devtools-for-tabs') + + // return launchOptions + // }) + }, + }, + retries: { + runMode: 0, + openMode: 0, + }, +} diff --git a/system-tests/projects/experimental-retries/cypress.config.js b/system-tests/projects/experimental-retries/cypress.config.js new file mode 100644 index 000000000000..2db5c69b464b --- /dev/null +++ b/system-tests/projects/experimental-retries/cypress.config.js @@ -0,0 +1,14 @@ +module.exports = { + e2e: { + supportFile: false, + setupNodeEvents (on, config) { + // in the case the tests needed to be debugged: + + // on('before:browser:launch', (browser, launchOptions) => { + // launchOptions.args.push('--auto-open-devtools-for-tabs') + + // return launchOptions + // }) + }, + }, +} diff --git a/system-tests/projects/experimental-retries/cypress/e2e/always-fails.cy.js b/system-tests/projects/experimental-retries/cypress/e2e/always-fails.cy.js new file mode 100644 index 000000000000..1728d87f56c8 --- /dev/null +++ b/system-tests/projects/experimental-retries/cypress/e2e/always-fails.cy.js @@ -0,0 +1,5 @@ +describe('always fails', () => { + it('always fails', function () { + expect(true).to.be.false + }) +}) diff --git a/system-tests/projects/experimental-retries/cypress/e2e/always-passes.cy.js b/system-tests/projects/experimental-retries/cypress/e2e/always-passes.cy.js new file mode 100644 index 000000000000..40154fb58d0a --- /dev/null +++ b/system-tests/projects/experimental-retries/cypress/e2e/always-passes.cy.js @@ -0,0 +1,5 @@ +describe('always passes', () => { + it('always passes', function () { + expect(true).to.be.true + }) +}) diff --git a/system-tests/projects/experimental-retries/cypress/e2e/deterministic-flaky.cy.js b/system-tests/projects/experimental-retries/cypress/e2e/deterministic-flaky.cy.js new file mode 100644 index 000000000000..99996e5ebc2f --- /dev/null +++ b/system-tests/projects/experimental-retries/cypress/e2e/deterministic-flaky.cy.js @@ -0,0 +1,15 @@ +describe('deterministic flaky test', () => { + it('deterministically runs pass/fail on this test', function () { + // this means the test WILL behave as + // first attempt (FAIL) + // second attempt (PASS) + // third attempt (FAIL) + // fourth attempt (PASS) + // fifth attempt (FAIL)... + if (this.test.currentRetry() % 2) { + expect(true).to.be.true + } else { + expect(true).to.be.false + } + }) +}) diff --git a/system-tests/projects/experimental-retries/cypress/e2e/override-with-experimental-retries.cy.js b/system-tests/projects/experimental-retries/cypress/e2e/override-with-experimental-retries.cy.js new file mode 100644 index 000000000000..d5e10ae32341 --- /dev/null +++ b/system-tests/projects/experimental-retries/cypress/e2e/override-with-experimental-retries.cy.js @@ -0,0 +1,51 @@ +describe('overriding legacy retries with experimental retries', () => { + const experimentalStrategy = 'detect-flake-and-pass-on-threshold' + const openMode = false + const runMode = true + const maxRetries = 3 + const passesRequired = 1 + + describe('at the describe level', { + retries: { + experimentalStrategy, + openMode, + runMode, + experimentalOptions: { + maxRetries, + passesRequired, + }, + }, + }, () => { + it('sets the config', () => { + const retries = Cypress.config('retries') + + expect(retries.experimentalStrategy).to.eq(experimentalStrategy) + expect(retries.experimentalOptions?.maxRetries).to.eq(maxRetries) + expect(retries.experimentalOptions?.passesRequired).to.eq(passesRequired) + expect(retries.runMode).to.eq(runMode) + expect(retries.openMode).to.eq(openMode) + }) + }) + + describe('at the test level', () => { + it('sets the config', { + retries: { + experimentalStrategy, + openMode, + runMode, + experimentalOptions: { + maxRetries, + passesRequired, + }, + }, + }, () => { + const retries = Cypress.config('retries') + + expect(retries.experimentalStrategy).to.eq(experimentalStrategy) + expect(retries.experimentalOptions?.maxRetries).to.eq(maxRetries) + expect(retries.experimentalOptions?.passesRequired).to.eq(passesRequired) + expect(retries.runMode).to.eq(runMode) + expect(retries.openMode).to.eq(openMode) + }) + }) +}) diff --git a/system-tests/projects/experimental-retries/cypress/e2e/override-with-legacy-retries.cy.js b/system-tests/projects/experimental-retries/cypress/e2e/override-with-legacy-retries.cy.js new file mode 100644 index 000000000000..c9b8c26c1363 --- /dev/null +++ b/system-tests/projects/experimental-retries/cypress/e2e/override-with-legacy-retries.cy.js @@ -0,0 +1,16 @@ +describe('overriding experimental retries with legacy retries', () => { + const openMode = 1 + const runMode = 3 + + it('sets the config', { + retries: { + openMode, + runMode, + }, + }, () => { + const retries = Cypress.config('retries') + + expect(retries.runMode).to.eq(runMode) + expect(retries.openMode).to.eq(openMode) + }) +}) diff --git a/system-tests/test/experimental_retries.spec.ts b/system-tests/test/experimental_retries.spec.ts new file mode 100644 index 000000000000..3661804d4d0b --- /dev/null +++ b/system-tests/test/experimental_retries.spec.ts @@ -0,0 +1,309 @@ +import systemTests from '../lib/system-tests' + +describe('e2e retries.experimentalStrategy', () => { + systemTests.setup() + + describe('"detect-flake-and-pass-on-threshold"', () => { + describe('passes', () => { + systemTests.it('only runs the first attempt of the test if the test passes', { + project: 'experimental-retries', + browser: '!webkit', + spec: 'always-passes.cy.js', + snapshot: true, + expectedExitCode: 0, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 10, + passesRequired: 3, + }, + }, + screenshotOnRunFailure: false, + }, + }) + + systemTests.it('retries up to the "passesRequired" limit if the config can be satisfied', { + project: 'experimental-retries', + browser: '!webkit', + spec: 'deterministic-flaky.cy.js', + snapshot: true, + expectedExitCode: 0, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 9, + passesRequired: 3, + }, + }, + screenshotOnRunFailure: false, + }, + }) + + systemTests.it('retries up to the "passesRequired" limit if the config can be satisfied (max attempts)', { + project: 'experimental-retries', + browser: '!webkit', + spec: 'deterministic-flaky.cy.js', + snapshot: true, + expectedExitCode: 0, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 9, + passesRequired: 5, + }, + }, + screenshotOnRunFailure: false, + }, + }) + }) + + describe('fails', () => { + systemTests.it('short-circuits if the needed "passesRequired" cannot be satisfied by the remaining attempts available', { + project: 'experimental-retries', + browser: '!webkit', + spec: 'deterministic-flaky.cy.js', + snapshot: true, + expectedExitCode: 1, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 5, + passesRequired: 5, + }, + }, + screenshotOnRunFailure: false, + }, + }) + + systemTests.it('retries up to the "passesRequired" limit if the config can be satisfied (max attempts possible)', { + project: 'experimental-retries', + browser: '!webkit', + spec: 'deterministic-flaky.cy.js', + snapshot: true, + expectedExitCode: 1, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 6, + passesRequired: 4, + }, + }, + screenshotOnRunFailure: false, + }, + }) + }) + + /** + * exercised additionally in cy-in-cy tests to verify correct mocha snapshots and cypress reporter output: + * packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts + * packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.cy.ts + */ + systemTests.it('exercises experimental-retries suite to verify console reporter and final status code are correct.', { + project: 'detect-flake-and-pass-on-threshold', + browser: '!webkit', + spec: 'runner/experimental-retries/*', + snapshot: true, + expectedExitCode: 2, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 9, + passesRequired: 5, + }, + }, + screenshotOnRunFailure: false, + }, + }) + + systemTests.it('exercises experimental-retries hook failures to verify console reporter and final status code are correct.', { + project: 'detect-flake-and-pass-on-threshold', + browser: '!webkit', + spec: 'runner/fail-with-afterEach.mochaEvents.cy.js,runner/fail-with-beforeEach.mochaEvents.cy.js,runner/fail-with-after.mochaEvents.cy.js,runner/fail-with-before.mochaEvents.cy.js', + snapshot: true, + expectedExitCode: 4, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 9, + passesRequired: 5, + }, + }, + screenshotOnRunFailure: false, + }, + }) + }) + + describe('"detect-flake-but-always-fail"', () => { + describe('passes', () => { + systemTests.it('only runs the first attempt of the test if the test passes', { + project: 'experimental-retries', + browser: '!webkit', + spec: 'always-passes.cy.js', + snapshot: true, + expectedExitCode: 0, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 9, + stopIfAnyPassed: false, + }, + }, + screenshotOnRunFailure: false, + }, + }) + }) + + describe('fails', () => { + systemTests.it('runs all attempts of the test if the first attempt fails and "stopIfAnyPassed=false"', { + project: 'experimental-retries', + browser: '!webkit', + spec: 'deterministic-flaky.cy.js', + snapshot: true, + expectedExitCode: 1, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 9, + stopIfAnyPassed: false, + }, + }, + screenshotOnRunFailure: false, + }, + }) + + systemTests.it('runs attempts of the test if the first attempt fails until the test passes if "stopIfAnyPassed=true"', { + project: 'experimental-retries', + browser: '!webkit', + spec: 'deterministic-flaky.cy.js', + snapshot: true, + expectedExitCode: 1, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 9, + stopIfAnyPassed: true, + }, + }, + screenshotOnRunFailure: false, + }, + }) + }) + + /** + * exercised additionally in cy-in-cy tests to verify correct mocha snapshots and cypress reporter output: + * packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts + * packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.cy.ts + */ + systemTests.it('exercises experimental-retries suite to verify console reporter and final status code are correct.', { + project: 'detect-flake-but-always-fail', + browser: '!webkit', + spec: 'runner/experimental-retries/*', + snapshot: true, + // FIXME: this should be 8 + expectedExitCode: 9, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 9, + stopIfAnyPassed: false, + }, + }, + screenshotOnRunFailure: false, + }, + }) + + systemTests.it('exercises experimental-retries hook failures to verify console reporter and final status code are correct.', { + project: 'detect-flake-but-always-fail', + browser: '!webkit', + spec: 'runner/fail-with-afterEach.mochaEvents.cy.js,runner/fail-with-beforeEach.mochaEvents.cy.js,runner/fail-with-after.mochaEvents.cy.js,runner/fail-with-before.mochaEvents.cy.js', + snapshot: true, + expectedExitCode: 4, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 9, + stopIfAnyPassed: false, + }, + }, + screenshotOnRunFailure: false, + }, + }) + + systemTests.it('exercises experimental-retries suite to verify console reporter and final status code are correct (stopIfAnyPassed=true).', { + project: 'detect-flake-but-always-fail-stop-any-passed', + browser: '!webkit', + spec: 'runner/experimental-retries/*', + snapshot: true, + // FIXME: this should be 8 + expectedExitCode: 9, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 9, + stopIfAnyPassed: true, + }, + }, + screenshotOnRunFailure: false, + }, + }) + + systemTests.it('exercises experimental-retries hook failures to verify console reporter and final status code are correct (stopIfAnyPassed=true).', { + project: 'detect-flake-but-always-fail', + browser: '!webkit', + spec: 'runner/fail-with-afterEach.mochaEvents.cy.js,runner/fail-with-beforeEach.mochaEvents.cy.js,runner/fail-with-after.mochaEvents.cy.js,runner/fail-with-before.mochaEvents.cy.js', + snapshot: true, + expectedExitCode: 4, + config: { + retries: { + openMode: false, + runMode: true, + experimentalStrategy: 'detect-flake-but-always-fail', + experimentalOptions: { + maxRetries: 9, + stopIfAnyPassed: true, + }, + }, + screenshotOnRunFailure: false, + }, + }) + }) +}) diff --git a/system-tests/test/testConfigOverrides_spec.ts b/system-tests/test/testConfigOverrides_spec.ts index a97b2ab48453..871df33694b6 100644 --- a/system-tests/test/testConfigOverrides_spec.ts +++ b/system-tests/test/testConfigOverrides_spec.ts @@ -82,5 +82,25 @@ describe('testConfigOverrides', () => { browser: browserList, expectedExitCode: 1, }) + + describe('experimental retries specific behavior', () => { + systemTests.it(`fails when attempting to set experimental retries as override [${browserList}]`, { + spec: 'override-with-experimental-retries.cy.js', + project: 'experimental-retries', + configFile: 'cypress-legacy-retries.config.js', + expectedExitCode: 2, + browser: browserList, + snapshot: true, + }) + + systemTests.it(`succeeds when setting legacy retries as an override to experimental retries [${browserList}]`, { + spec: 'override-with-legacy-retries.cy.js', + project: 'experimental-retries', + configFile: 'cypress-experimental-retries.config.js', + expectedExitCode: 0, + browser: browserList, + snapshot: true, + }) + }) }) }) From b4cfb47122ddbf1f559a895ae7e32e542e873d91 Mon Sep 17 00:00:00 2001 From: Cacie Prins Date: Thu, 26 Oct 2023 15:10:07 -0400 Subject: [PATCH 27/47] chore: update @ffprobe-installer/ffprobe so all system tests run on darwin-arm64 (#27802) --- system-tests/package.json | 2 +- yarn.lock | 54 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/system-tests/package.json b/system-tests/package.json index 24d0bc0dca20..823089b7a173 100644 --- a/system-tests/package.json +++ b/system-tests/package.json @@ -27,7 +27,7 @@ "@cypress/request-promise": "^5.0.0", "@cypress/sinon-chai": "2.9.1", "@cypress/webpack-preprocessor": "0.0.0-development", - "@ffprobe-installer/ffprobe": "1.1.0", + "@ffprobe-installer/ffprobe": "2.1.2", "@packages/https-proxy": "0.0.0-development", "@packages/launcher": "0.0.0-development", "@packages/network": "0.0.0-development", diff --git a/yarn.lock b/yarn.lock index c9f599222a99..6817950959b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3009,11 +3009,21 @@ resolved "https://registry.yarnpkg.com/@ffmpeg-installer/win32-x64/-/win32-x64-4.1.0.tgz#17e8699b5798d4c60e36e2d6326a8ebe5e95a2c5" integrity sha512-Drt5u2vzDnIONf4ZEkKtFlbvwj6rI3kxw1Ck9fpudmtgaZIHD4ucsWB2lCZBXRxJgXR+2IMSti+4rtM4C4rXgg== +"@ffprobe-installer/darwin-arm64@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@ffprobe-installer/darwin-arm64/-/darwin-arm64-5.0.1.tgz#a020a623955d55aa8daf45cb668c3044876b553b" + integrity sha512-vwNCNjokH8hfkbl6m95zICHwkSzhEvDC3GVBcUp5HX8+4wsX10SP3B+bGur7XUzTIZ4cQpgJmEIAx6TUwRepMg== + "@ffprobe-installer/darwin-x64@4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@ffprobe-installer/darwin-x64/-/darwin-x64-4.1.0.tgz#025c5108faf3e456e6a407dd65b798f8dcc805dd" integrity sha512-ESwvOnbGVGK0r7bUdThSZAYipQOH0X79M4SoNZ5Tg77lq/RVbEdpObNEM2oRfLINbMlQQrezA4VYzt0n/DOkcQ== +"@ffprobe-installer/darwin-x64@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@ffprobe-installer/darwin-x64/-/darwin-x64-5.1.0.tgz#f52316ac0bbe6f4ac70fdaea8db259ba4a055b00" + integrity sha512-J+YGscZMpQclFg31O4cfVRGmDpkVsQ2fZujoUdMAAYcP0NtqpC49Hs3SWJpBdsGB4VeqOt5TTm1vSZQzs1NkhA== + "@ffprobe-installer/ffprobe@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@ffprobe-installer/ffprobe/-/ffprobe-1.1.0.tgz#a2f6fbd383f90d9359dc6c0552dca9793a884b3c" @@ -3027,36 +3037,80 @@ "@ffprobe-installer/win32-ia32" "4.1.0" "@ffprobe-installer/win32-x64" "4.1.0" +"@ffprobe-installer/ffprobe@2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ffprobe-installer/ffprobe/-/ffprobe-2.1.2.tgz#ef9826b714cefe5e2debbe357afbb1ba738dfb32" + integrity sha512-ZNvwk4f2magF42Zji2Ese16SMj9BS7Fui4kRjg6gTYTxY3gWZNpg85n4MIfQyI9nimHg4x/gT6FVkp/bBDuBwg== + optionalDependencies: + "@ffprobe-installer/darwin-arm64" "5.0.1" + "@ffprobe-installer/darwin-x64" "5.1.0" + "@ffprobe-installer/linux-arm" "5.2.0" + "@ffprobe-installer/linux-arm64" "5.2.0" + "@ffprobe-installer/linux-ia32" "5.2.0" + "@ffprobe-installer/linux-x64" "5.2.0" + "@ffprobe-installer/win32-ia32" "5.1.0" + "@ffprobe-installer/win32-x64" "5.1.0" + "@ffprobe-installer/linux-arm64@4.3.2": version "4.3.2" resolved "https://registry.yarnpkg.com/@ffprobe-installer/linux-arm64/-/linux-arm64-4.3.2.tgz#a64ed27672d55460bdea59bc63da0cf3731f19e8" integrity sha512-9mCINruqx30UqB7kRvc75sj0yAPiDy21Fowow8bQDaAYAuO39MrFt/caLJrX11vCUfx2awolxKeuzTqcO9JjMQ== +"@ffprobe-installer/linux-arm64@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@ffprobe-installer/linux-arm64/-/linux-arm64-5.2.0.tgz#b6cb3735792d9d012d1caba4de2a6f90af2a8966" + integrity sha512-X1VvWtlLs6ScP73biVLuHD5ohKJKsMTa0vafCESOen4mOoNeLAYbxOVxDWAdFz9cpZgRiloFj5QD6nDj8E28yQ== + "@ffprobe-installer/linux-arm@4.3.2": version "4.3.2" resolved "https://registry.yarnpkg.com/@ffprobe-installer/linux-arm/-/linux-arm-4.3.2.tgz#09347e67539544168d9815486cd543c3e88cba29" integrity sha512-nZJbpTdh29swlgjVWi2fcV5jvbDFgo2y6a7X/uBsbely/TB158Fg0AncWJm7BbC0CwasGmSdqBsLtoSwXIcrlQ== +"@ffprobe-installer/linux-arm@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@ffprobe-installer/linux-arm/-/linux-arm-5.2.0.tgz#0120863c181303a1610b1e6956c6a5492d6c45a6" + integrity sha512-PF5HqEhCY7WTWHtLDYbA/+rLS+rhslWvyBlAG1Fk8VzVlnRdl93o6hy7DE2kJgxWQbFaR3ZktPQGEzfkrmQHvQ== + "@ffprobe-installer/linux-ia32@4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@ffprobe-installer/linux-ia32/-/linux-ia32-4.1.0.tgz#50b5952927b8b1bc42c3f2edd788b995e8470d17" integrity sha512-V2NeZpnly4HP1IU5IrsbbcRg8SWzC/SS0YDNSCjmhxGV2U8MUpW8c8KREE6nX56Dml8B8do5NNkTnaYCDPt3Xw== +"@ffprobe-installer/linux-ia32@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@ffprobe-installer/linux-ia32/-/linux-ia32-5.2.0.tgz#d42a892003811b5e1f2c958d330b841ef6ff3233" + integrity sha512-TFVK5sasXyXhbIG7LtPRDmtkrkOsInwKcL43iEvEw+D9vCS2rc//mn9/0Q+BR0UoJEiMK4+ApYr/3LLVUBPOCQ== + "@ffprobe-installer/linux-x64@4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@ffprobe-installer/linux-x64/-/linux-x64-4.1.0.tgz#b67c96748457677171ca31b0fb83e4bd3c644ab5" integrity sha512-Id+irHoI+Arq6tb3sHNQyzRrgUVVDgbmwpREDqQ+GDydiCw5ca7VnvRGXE/tBM2mVQ3/6m9wWHR7+xaW3gKJlA== +"@ffprobe-installer/linux-x64@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@ffprobe-installer/linux-x64/-/linux-x64-5.2.0.tgz#5dd8dbd51d130b5997bf49cb874e1f92e97f02e7" + integrity sha512-D3UeqTLYPNs7pBWPLUYGehPdRVqU8eACox4OZy3pZUZatxye2YKlvBwEfaLdL1v2Z4FOAlLUhms0kY8m8kqSRA== + "@ffprobe-installer/win32-ia32@4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@ffprobe-installer/win32-ia32/-/win32-ia32-4.1.0.tgz#19cc6d1043f7e54c2764ada6af8f7f26f98bbad8" integrity sha512-G1pbRfk7XDi9EioT0gSR+O4ARdppS9kSXRzhnJOojUFD6x1k8Qv27RoOXeE5DtIE7TdX6UTywj8qA1BXI5zUUA== +"@ffprobe-installer/win32-ia32@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@ffprobe-installer/win32-ia32/-/win32-ia32-5.1.0.tgz#43b1462b9d89570fe3723c20b66bab684516751a" + integrity sha512-5O3vOoNRxmut0/Nu9vSazTdSHasrr+zPT2B3Hm7kjmO3QVFcIfVImS6ReQnZeSy8JPJOqXts5kX5x/3KOX54XQ== + "@ffprobe-installer/win32-x64@4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@ffprobe-installer/win32-x64/-/win32-x64-4.1.0.tgz#ed3e8a329eeb6c0625ac439e31ad9ec43001b33c" integrity sha512-gPW2FZxexzCAOhGch0JFkeSSln+wcL5d1JDlJwfSJVEAShHf9MmxiWq0NpHoCSzFvK5qwl0C58KG180eKvd3mA== +"@ffprobe-installer/win32-x64@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@ffprobe-installer/win32-x64/-/win32-x64-5.1.0.tgz#87841123e8b903cc327f1e5b9aa69e5d2fbe6d7b" + integrity sha512-jMGYeAgkrdn4e2vvYt/qakgHRE3CPju4bn5TmdPfoAm1BlX1mY9cyMd8gf5vSzI8gH8Zq5WQAyAkmekX/8TSTg== + "@floating-ui/core@^0.3.0": version "0.3.1" resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-0.3.1.tgz#3dde0ad0724d4b730567c92f49f0950910e18871" From 95d1a0c6713249a0c40b2d96b61062b90a5f2d30 Mon Sep 17 00:00:00 2001 From: "cypress-bot[bot]" <+cypress-bot[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 21:15:28 +0000 Subject: [PATCH 28/47] chore: updating v8 snapshot cache --- tooling/v8-snapshot/cache/linux/snapshot-meta.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tooling/v8-snapshot/cache/linux/snapshot-meta.json b/tooling/v8-snapshot/cache/linux/snapshot-meta.json index 37b4b2ce1d1c..fc5b2e57a7c7 100644 --- a/tooling/v8-snapshot/cache/linux/snapshot-meta.json +++ b/tooling/v8-snapshot/cache/linux/snapshot-meta.json @@ -4314,5 +4314,5 @@ "./tooling/v8-snapshot/cache/linux/snapshot-entry.js" ], "deferredHashFile": "yarn.lock", - "deferredHash": "76a16852d60376704f90a2e7377740b9015deb551aadaba74545f7268f8b7107" + "deferredHash": "3f7b87e8ca0a95995d9bed5a009858607b348bdeba192e57816ab93de2d71938" } \ No newline at end of file From f30a16a40c94f0664dd1786b6f8feb878e1f7b3f Mon Sep 17 00:00:00 2001 From: "cypress-bot[bot]" <+cypress-bot[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 21:35:07 +0000 Subject: [PATCH 29/47] chore: updating v8 snapshot cache --- tooling/v8-snapshot/cache/darwin/snapshot-meta.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tooling/v8-snapshot/cache/darwin/snapshot-meta.json b/tooling/v8-snapshot/cache/darwin/snapshot-meta.json index ed4732e18936..be9fc2e54021 100644 --- a/tooling/v8-snapshot/cache/darwin/snapshot-meta.json +++ b/tooling/v8-snapshot/cache/darwin/snapshot-meta.json @@ -4315,5 +4315,5 @@ "./tooling/v8-snapshot/cache/darwin/snapshot-entry.js" ], "deferredHashFile": "yarn.lock", - "deferredHash": "76a16852d60376704f90a2e7377740b9015deb551aadaba74545f7268f8b7107" + "deferredHash": "3f7b87e8ca0a95995d9bed5a009858607b348bdeba192e57816ab93de2d71938" } \ No newline at end of file From 4036d713a3e9e690ae901f205b0ab38d96bc9395 Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Fri, 27 Oct 2023 10:14:54 -0500 Subject: [PATCH 30/47] chore: update changelog for #28141 fix (#28161) Co-authored-by: Matt Schile --- cli/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index ff15f5c7c1f2..346b3ad05237 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -10,7 +10,7 @@ _Released 10/25/2023 (PENDING)_ **Bugfixes:** -- Fixed a regression in [`13.3.2`](https://docs.cypress.io/guides/references/changelog/13.3.2) where loading a service worker and immediately reloading the page can cause a crash. Fixes [#28141](https://github.com/cypress-io/cypress/issues/28141). +- Fixed a regression in [`13.3.2`](https://docs.cypress.io/guides/references/changelog/13.3.2) where Cypress would crash with 'Inspected target navigated or closed' or 'Session with given id not found'. Fixes [#28141](https://github.com/cypress-io/cypress/issues/28141) and [#28148 ](https://github.com/cypress-io/cypress/issues/28148). ## 13.3.3 From 7defccfe45ddb2d52bd7f1079e291476bfff0d2d Mon Sep 17 00:00:00 2001 From: Cacie Prins Date: Fri, 27 Oct 2023 11:35:00 -0400 Subject: [PATCH 31/47] chore: increase timeout for experimental retries test (#28163) --- .../e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts b/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts index 8acadd3ac8a1..38a6ad83825e 100644 --- a/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts +++ b/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts @@ -391,7 +391,7 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, describe('cleanses errors before emitting', () => { it('does not try to serialize error with err.actual as DOM node', function (done) { // because there are more attempts for 'detect-flake-but-always-fail', the timeout needs to be increased - this.timeout(15000) + this.timeout(20000) const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( snapshots, From e0ad2d73361987a3f4cd213e4b3a6ff21cc048e5 Mon Sep 17 00:00:00 2001 From: Cacie Prins Date: Fri, 27 Oct 2023 11:53:38 -0400 Subject: [PATCH 32/47] chore: fixes changelog whitespace (#28164) --- cli/CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 346b3ad05237..1f63bec4a36b 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,8 +1,7 @@ - ## 13.4.0 -_Released 10/25/2023 (PENDING)_ +_Released 10/27/2023 (PENDING)_ **Features:** From 397ab4c820b78c26e3fb7be8c2ac313467013219 Mon Sep 17 00:00:00 2001 From: Cacie Prins Date: Fri, 27 Oct 2023 12:32:43 -0400 Subject: [PATCH 33/47] chore: 13.4.0 release updates (#28166) --- cli/CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 1f63bec4a36b..0cf7c0aa3aad 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,7 +1,7 @@ ## 13.4.0 -_Released 10/27/2023 (PENDING)_ +_Released 10/27/2023_ **Features:** diff --git a/package.json b/package.json index 73bfed548768..7f85ce6d109a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cypress", - "version": "13.3.3", + "version": "13.4.0", "description": "Cypress is a next generation front end testing tool built for the modern web", "private": true, "scripts": { From 08d73d4a536dfdf0dfd70e64bc9b349f09203359 Mon Sep 17 00:00:00 2001 From: Cacie Prins Date: Fri, 27 Oct 2023 13:27:34 -0400 Subject: [PATCH 34/47] chore: fixes changelog whitespace (#28168) --- cli/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 0cf7c0aa3aad..dcc06e06c70d 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -9,7 +9,7 @@ _Released 10/27/2023_ **Bugfixes:** -- Fixed a regression in [`13.3.2`](https://docs.cypress.io/guides/references/changelog/13.3.2) where Cypress would crash with 'Inspected target navigated or closed' or 'Session with given id not found'. Fixes [#28141](https://github.com/cypress-io/cypress/issues/28141) and [#28148 ](https://github.com/cypress-io/cypress/issues/28148). +- Fixed a regression in [`13.3.2`](https://docs.cypress.io/guides/references/changelog/13.3.2) where Cypress would crash with 'Inspected target navigated or closed' or 'Session with given id not found'. Fixes [#28141](https://github.com/cypress-io/cypress/issues/28141) and [#28148](https://github.com/cypress-io/cypress/issues/28148). ## 13.3.3 From 5a95541c3c4e48bfc67a54642abc949576fa6f05 Mon Sep 17 00:00:00 2001 From: Cacie Prins Date: Mon, 30 Oct 2023 09:42:14 -0400 Subject: [PATCH 35/47] chore: sets date for 13.4.0 release in changelog to 10/30 (#28177) --- cli/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index dcc06e06c70d..eabda4019dff 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,7 +1,7 @@ ## 13.4.0 -_Released 10/27/2023_ +_Released 10/30/2023_ **Features:** From 6aafb528ddc4e2a343a5afd18c4ddad04854327b Mon Sep 17 00:00:00 2001 From: Chris Breiding Date: Tue, 31 Oct 2023 10:48:45 -0400 Subject: [PATCH 36/47] chore: extract Target.attachedToTarget and Target.targetDestroyed handlers into own methods (#28179) --- .../server/lib/browsers/browser-cri-client.ts | 251 ++++++++++------- .../unit/browsers/browser-cri-client_spec.ts | 266 +++++++++--------- 2 files changed, 285 insertions(+), 232 deletions(-) diff --git a/packages/server/lib/browsers/browser-cri-client.ts b/packages/server/lib/browsers/browser-cri-client.ts index b1b90363a72c..3723cbfa71fb 100644 --- a/packages/server/lib/browsers/browser-cri-client.ts +++ b/packages/server/lib/browsers/browser-cri-client.ts @@ -1,6 +1,7 @@ import Bluebird from 'bluebird' import CRI from 'chrome-remote-interface' import Debug from 'debug' +import type { Protocol } from 'devtools-protocol' import { _connectAsync, _getDelayMsForRetry } from './protocol' import * as errors from '../errors' import { create, CriClient, DEFAULT_NETWORK_ENABLE_OPTIONS } from './cri-client' @@ -25,13 +26,37 @@ type BrowserCriClientOptions = { } type BrowserCriClientCreateOptions = { - hosts: string[] - port: number browserName: string + fullyManageTabs?: boolean + hosts: string[] onAsynchronousError: Function onReconnect?: (client: CriClient) => void + port: number + protocolManager?: ProtocolManagerShape +} + +interface ManageTabsOptions { + browserClient: CriClient + browserCriClient: BrowserCriClient + browserName + host: string + onAsynchronousError: Function + port: number + protocolManager?: ProtocolManagerShape +} + +interface AttachedToTargetOptions { + browserClient: CriClient + event: Protocol.Target.AttachedToTargetEvent protocolManager?: ProtocolManagerShape - fullyManageTabs?: boolean +} + +interface TargetDestroyedOptions { + browserName: string + browserClient: CriClient + browserCriClient: BrowserCriClient + event: Protocol.Target.TargetDestroyedEvent + onAsynchronousError: Function } const isVersionGte = (a: Version, b: Version) => { @@ -169,16 +194,26 @@ export class BrowserCriClient { * Factory method for the browser cri client. Connects to the browser and then returns a chrome remote interface wrapper around the * browser target * - * @param hosts the hosts to which to attempt to connect - * @param port the port to which to connect * @param browserName the display name of the browser being launched + * @param fullyManageTabs whether or not to fully manage tabs. This is useful for firefox where some work is done with marionette and some with CDP. We don't want to handle disconnections in this class in those scenarios + * @param hosts the hosts to which to attempt to connect * @param onAsynchronousError callback for any cdp fatal errors * @param onReconnect callback for when the browser cri client reconnects to the browser + * @param port the port to which to connect * @param protocolManager the protocol manager to use with the browser cri client - * @param fullyManageTabs whether or not to fully manage tabs. This is useful for firefox where some work is done with marionette and some with CDP. We don't want to handle disconnections in this class in those scenarios * @returns a wrapper around the chrome remote interface that is connected to the browser target */ - static async create ({ hosts, port, browserName, onAsynchronousError, onReconnect, protocolManager, fullyManageTabs }: BrowserCriClientCreateOptions): Promise { + static async create (options: BrowserCriClientCreateOptions): Promise { + const { + browserName, + fullyManageTabs, + hosts, + onAsynchronousError, + onReconnect, + port, + protocolManager, + } = options + const host = await ensureLiveBrowser(hosts, port, browserName) return retryWithIncreasingDelay(async () => { @@ -195,104 +230,122 @@ export class BrowserCriClient { const browserCriClient = new BrowserCriClient({ browserClient, versionInfo, host, port, browserName, onAsynchronousError, protocolManager, fullyManageTabs }) if (fullyManageTabs) { - // The basic approach here is we attach to targets and enable network traffic - // We must attach in a paused state so that we can enable network traffic before the target starts running. - browserClient.on('Target.attachedToTarget', async (event) => { - try { - if (event.targetInfo.type !== 'page') { - await browserClient.send('Network.enable', protocolManager?.networkEnableOptions ?? DEFAULT_NETWORK_ENABLE_OPTIONS, event.sessionId) - } - - if (event.waitingForDebugger) { - await browserClient.send('Runtime.runIfWaitingForDebugger', undefined, event.sessionId) - } - } catch (error) { - // it's possible that the target was closed before we could enable network and continue, in that case, just ignore - debug('error attaching to target browser', error) - } - }) - - // Ideally we could use filter rather than checking the type above, but that was added relatively recently - await browserClient.send('Target.setAutoAttach', { autoAttach: true, waitForDebuggerOnStart: true, flatten: true }) - await browserClient.send('Target.setDiscoverTargets', { discover: true }) - browserClient.on('Target.targetDestroyed', (event) => { - debug('Target.targetDestroyed %o', { - event, - closing: browserCriClient.closing, - closed: browserCriClient.closed, - resettingBrowserTargets: browserCriClient.resettingBrowserTargets, - }) - - // we may have gotten a delayed "Target.targetDestroyed" even for a page that we - // have already closed/disposed, so unless this matches our current target then bail - if (event.targetId !== browserCriClient.currentlyAttachedTarget?.targetId) { - return - } - - // otherwise... - // the page or browser closed in an unexpected manner and we need to bubble up this error - // by calling onError() with either browser or page was closed - // - // we detect this by waiting up to 500ms for either the browser's websocket connection to be closed - // OR from process.exit(...) firing - // if the browser's websocket connection has been closed then that means the page was closed - // - // otherwise it means the the browser itself was closed - - // always close the connection to the page target because it was destroyed - browserCriClient.currentlyAttachedTarget.close().catch(() => { }), - - new Bluebird((resolve) => { - // this event could fire either expectedly or unexpectedly - // it's not a problem if we're expected to be closing the browser naturally - // and not as a result of an unexpected page or browser closure - if (browserCriClient.resettingBrowserTargets) { - // do nothing, we're good - return resolve(true) - } - - if (typeof browserCriClient.gracefulShutdown !== 'undefined') { - return resolve(browserCriClient.gracefulShutdown) - } - - // when process.on('exit') is called, we call onClose - browserCriClient.onClose = resolve - - // or when the browser's CDP ws connection is closed - browserClient.ws.once('close', () => { - resolve(false) - }) - }) - .timeout(500) - .then((expectedDestroyedEvent) => { - if (expectedDestroyedEvent === true) { - return - } - - // browserClient websocket was disconnected - // or we've been closed due to process.on('exit') - // meaning the browser was closed and not just the page - errors.throwErr('BROWSER_PROCESS_CLOSED_UNEXPECTEDLY', browserName) - }) - .catch(Bluebird.TimeoutError, () => { - debug('browser websocket did not close, page was closed %o', { targetId: event.targetId }) - // the browser websocket didn't close meaning - // only the page was closed, not the browser - errors.throwErr('BROWSER_PAGE_CLOSED_UNEXPECTEDLY', browserName) - }) - .catch((err) => { - // stop the run instead of moving to the next spec - err.isFatalApiErr = true - - onAsynchronousError(err) - }) - }) + await this._manageTabs({ browserClient, browserCriClient, browserName, host, onAsynchronousError, port, protocolManager }) } return browserCriClient }, browserName, port) } + static async _manageTabs ({ browserClient, browserCriClient, browserName, host, onAsynchronousError, port, protocolManager }: ManageTabsOptions) { + const promises = [ + browserClient.send('Target.setDiscoverTargets', { discover: true }), + browserClient.send('Target.setAutoAttach', { autoAttach: true, waitForDebuggerOnStart: true, flatten: true }), + ] + + browserClient.on('Target.attachedToTarget', async (event: Protocol.Target.AttachedToTargetEvent) => { + await this._onAttachToTarget({ browserClient, event, protocolManager }) + }) + + browserClient.on('Target.targetDestroyed', (event: Protocol.Target.TargetDestroyedEvent) => { + this._onTargetDestroyed({ browserClient, browserCriClient, browserName, event, onAsynchronousError }) + }) + + await Promise.all(promises) + } + + static async _onAttachToTarget (options: AttachedToTargetOptions) { + const { browserClient, event, protocolManager } = options + + debug('Target.attachedToTarget %o', event.targetInfo) + + try { + if (event.targetInfo.type !== 'page') { + await browserClient.send('Network.enable', protocolManager?.networkEnableOptions ?? DEFAULT_NETWORK_ENABLE_OPTIONS, event.sessionId) + } + + if (event.waitingForDebugger) { + await browserClient.send('Runtime.runIfWaitingForDebugger', undefined, event.sessionId) + } + } catch (error) { + // it's possible that the target was closed before we could enable network and continue, in that case, just ignore + debug('error attaching to target browser', error) + } + } + + static _onTargetDestroyed ({ browserClient, browserCriClient, browserName, event, onAsynchronousError }: TargetDestroyedOptions) { + debug('Target.targetDestroyed %o', { + event, + closing: browserCriClient.closing, + closed: browserCriClient.closed, + resettingBrowserTargets: browserCriClient.resettingBrowserTargets, + }) + + // we may have gotten a delayed "Target.targetDestroyed" even for a page that we + // have already closed/disposed, so unless this matches our current target then bail + if (event.targetId !== browserCriClient.currentlyAttachedTarget?.targetId) { + return + } + + // otherwise... + // the page or browser closed in an unexpected manner and we need to bubble up this error + // by calling onError() with either browser or page was closed + // + // we detect this by waiting up to 500ms for either the browser's websocket connection to be closed + // OR from process.exit(...) firing + // if the browser's websocket connection has been closed then that means the page was closed + // + // otherwise it means the the browser itself was closed + + // always close the connection to the page target because it was destroyed + browserCriClient.currentlyAttachedTarget.close().catch(() => { }), + + new Bluebird((resolve) => { + // this event could fire either expectedly or unexpectedly + // it's not a problem if we're expected to be closing the browser naturally + // and not as a result of an unexpected page or browser closure + if (browserCriClient.resettingBrowserTargets) { + // do nothing, we're good + return resolve(true) + } + + if (typeof browserCriClient.gracefulShutdown !== 'undefined') { + return resolve(browserCriClient.gracefulShutdown) + } + + // when process.on('exit') is called, we call onClose + browserCriClient.onClose = resolve + + // or when the browser's CDP ws connection is closed + browserClient.ws.once('close', () => { + resolve(false) + }) + }) + .timeout(500) + .then((expectedDestroyedEvent) => { + if (expectedDestroyedEvent === true) { + return + } + + // browserClient websocket was disconnected + // or we've been closed due to process.on('exit') + // meaning the browser was closed and not just the page + errors.throwErr('BROWSER_PROCESS_CLOSED_UNEXPECTEDLY', browserName) + }) + .catch(Bluebird.TimeoutError, () => { + debug('browser websocket did not close, page was closed %o', { targetId: event.targetId }) + // the browser websocket didn't close meaning + // only the page was closed, not the browser + errors.throwErr('BROWSER_PAGE_CLOSED_UNEXPECTEDLY', browserName) + }) + .catch((err) => { + // stop the run instead of moving to the next spec + err.isFatalApiErr = true + + onAsynchronousError(err) + }) + } + /** * Ensures that the minimum protocol version for the browser is met * diff --git a/packages/server/test/unit/browsers/browser-cri-client_spec.ts b/packages/server/test/unit/browsers/browser-cri-client_spec.ts index 4beed34046f2..40fd09e09fac 100644 --- a/packages/server/test/unit/browsers/browser-cri-client_spec.ts +++ b/packages/server/test/unit/browsers/browser-cri-client_spec.ts @@ -127,200 +127,200 @@ describe('lib/browsers/cri-client', function () { expect(criImport.Version).to.be.calledTwice }) + }) - context('#ensureMinimumProtocolVersion', function () { - function withProtocolVersion (actual, test) { - return getClient() - .then((client: any) => { - client.versionInfo = { 'Protocol-Version': actual } - - return client.ensureMinimumProtocolVersion(test) - }) - } + context('#ensureMinimumProtocolVersion', function () { + function withProtocolVersion (actual, test) { + return getClient() + .then((client: any) => { + client.versionInfo = { 'Protocol-Version': actual } - it('resolves if protocolVersion = current', function () { - return expect(withProtocolVersion('1.3', '1.3')).to.be.fulfilled + return client.ensureMinimumProtocolVersion(test) }) + } - it('resolves if protocolVersion > current', function () { - return expect(withProtocolVersion('1.4', '1.3')).to.be.fulfilled - }) + it('resolves if protocolVersion = current', function () { + return expect(withProtocolVersion('1.3', '1.3')).to.be.fulfilled + }) - it('rejects if protocolVersion < current', function () { - return expect(withProtocolVersion('1.2', '1.3')).to.be - .rejected.then((err) => { - expect(stripAnsi(err.message)).to.eq(`A minimum CDP version of 1.3 is required, but the current browser has 1.2.`) - }) + it('resolves if protocolVersion > current', function () { + return expect(withProtocolVersion('1.4', '1.3')).to.be.fulfilled + }) + + it('rejects if protocolVersion < current', function () { + return expect(withProtocolVersion('1.2', '1.3')).to.be + .rejected.then((err) => { + expect(stripAnsi(err.message)).to.eq(`A minimum CDP version of 1.3 is required, but the current browser has 1.2.`) }) }) + }) - context('#attachToTargetUrl', function () { - it('creates a page client when the passed in url is found', async function () { - const mockPageClient = {} + context('#attachToTargetUrl', function () { + it('creates a page client when the passed in url is found', async function () { + const mockPageClient = {} - send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined, fullyManageTabs: undefined, browserClient: { on, send, close } }).resolves(mockPageClient) + send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined, fullyManageTabs: undefined, browserClient: { on, send, close } }).resolves(mockPageClient) - const browserClient = await getClient() + const browserClient = await getClient() - const client = await browserClient.attachToTargetUrl('http://foo.com') + const client = await browserClient.attachToTargetUrl('http://foo.com') - expect(client).to.be.equal(mockPageClient) - }) + expect(client).to.be.equal(mockPageClient) + }) - it('creates a page client when the passed in url is found and notifies the protocol manager and fully managed tabs', async function () { - const mockPageClient = {} - const protocolManager: any = { - connectToBrowser: sinon.stub().resolves(), - } + it('creates a page client when the passed in url is found and notifies the protocol manager and fully managed tabs', async function () { + const mockPageClient = {} + const protocolManager: any = { + connectToBrowser: sinon.stub().resolves(), + } - send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - send.withArgs('Target.setDiscoverTargets', { discover: true }) - on.withArgs('Target.targetDestroyed', sinon.match.func) - criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager, fullyManageTabs: true, browserClient: { on, send, close } }).resolves(mockPageClient) + send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) + send.withArgs('Target.setDiscoverTargets', { discover: true }) + on.withArgs('Target.targetDestroyed', sinon.match.func) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager, fullyManageTabs: true, browserClient: { on, send, close } }).resolves(mockPageClient) - const browserClient = await getClient({ protocolManager, fullyManageTabs: true }) + const browserClient = await getClient({ protocolManager, fullyManageTabs: true }) - const client = await browserClient.attachToTargetUrl('http://foo.com') + const client = await browserClient.attachToTargetUrl('http://foo.com') - expect(client).to.be.equal(mockPageClient) - expect(protocolManager.connectToBrowser).to.be.calledWith(client) - }) + expect(client).to.be.equal(mockPageClient) + expect(protocolManager.connectToBrowser).to.be.calledWith(client) + }) - it('creates a page client when the passed in url is found and notifies the protocol manager and fully managed tabs and attaching to target throws', async function () { - const mockPageClient = {} - const protocolManager: any = { - connectToBrowser: sinon.stub().resolves(), - } + it('creates a page client when the passed in url is found and notifies the protocol manager and fully managed tabs and attaching to target throws', async function () { + const mockPageClient = {} + const protocolManager: any = { + connectToBrowser: sinon.stub().resolves(), + } - send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - send.withArgs('Target.setDiscoverTargets', { discover: true }) - on.withArgs('Target.targetDestroyed', sinon.match.func) + send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) + send.withArgs('Target.setDiscoverTargets', { discover: true }) + on.withArgs('Target.targetDestroyed', sinon.match.func) - send.withArgs('Network.enable').throws(new Error('ProtocolError: Inspected target navigated or closed')) + send.withArgs('Network.enable').throws(new Error('ProtocolError: Inspected target navigated or closed')) - criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager, fullyManageTabs: true, browserClient: { on, send, close } }).resolves(mockPageClient) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager, fullyManageTabs: true, browserClient: { on, send, close } }).resolves(mockPageClient) - const browserClient = await getClient({ protocolManager, fullyManageTabs: true }) + const browserClient = await getClient({ protocolManager, fullyManageTabs: true }) - const client = await browserClient.attachToTargetUrl('http://foo.com') + const client = await browserClient.attachToTargetUrl('http://foo.com') - expect(client).to.be.equal(mockPageClient) - expect(protocolManager.connectToBrowser).to.be.calledWith(client) + expect(client).to.be.equal(mockPageClient) + expect(protocolManager.connectToBrowser).to.be.calledWith(client) - // This would throw if the error was not caught - await on.withArgs('Target.attachedToTarget').args[0][1]({ targetInfo: { type: 'worker' } }) - }) + // This would throw if the error was not caught + await on.withArgs('Target.attachedToTarget').args[0][1]({ targetInfo: { type: 'worker' } }) + }) - it('retries when the passed in url is not found', async function () { - sinon.stub(protocol, '_getDelayMsForRetry') - .onFirstCall().returns(100) - .onSecondCall().returns(100) - .onThirdCall().returns(100) + it('retries when the passed in url is not found', async function () { + sinon.stub(protocol, '_getDelayMsForRetry') + .onFirstCall().returns(100) + .onSecondCall().returns(100) + .onThirdCall().returns(100) - const mockPageClient = {} + const mockPageClient = {} - send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }, { targetId: '3', url: 'http://baz.com' }] }) - criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined, fullyManageTabs: undefined, browserClient: { on, send, close } }).resolves(mockPageClient) + send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) + send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) + send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }, { targetId: '3', url: 'http://baz.com' }] }) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined, fullyManageTabs: undefined, browserClient: { on, send, close } }).resolves(mockPageClient) - const browserClient = await getClient() + const browserClient = await getClient() - const client = await browserClient.attachToTargetUrl('http://foo.com') + const client = await browserClient.attachToTargetUrl('http://foo.com') - expect(client).to.be.equal(mockPageClient) - }) + expect(client).to.be.equal(mockPageClient) + }) - it('throws when the passed in url is not found after retrying', async function () { - sinon.stub(protocol, '_getDelayMsForRetry') - .onFirstCall().returns(100) - .onSecondCall().returns(undefined) + it('throws when the passed in url is not found after retrying', async function () { + sinon.stub(protocol, '_getDelayMsForRetry') + .onFirstCall().returns(100) + .onSecondCall().returns(undefined) - const mockPageClient = {} + const mockPageClient = {} - send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) - criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined, fullyManageTabs: undefined, browserClient: { on, send, close } }).resolves(mockPageClient) + send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) + send.withArgs('Target.getTargets').resolves({ targetInfos: [{ targetId: '1', url: 'http://foo.com' }, { targetId: '2', url: 'http://bar.com' }] }) + criClientCreateStub.withArgs({ target: '1', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined, fullyManageTabs: undefined, browserClient: { on, send, close } }).resolves(mockPageClient) - const browserClient = await getClient() + const browserClient = await getClient() - await expect(browserClient.attachToTargetUrl('http://baz.com')).to.be.rejected - }) + await expect(browserClient.attachToTargetUrl('http://baz.com')).to.be.rejected }) + }) - context('#resetBrowserTargets', function () { - it('closes the currently attached target while keeping a tab open', async function () { - const mockCurrentlyAttachedTarget = { - targetId: '100', - close: sinon.stub().resolves(sinon.stub().resolves()), - } + context('#resetBrowserTargets', function () { + it('closes the currently attached target while keeping a tab open', async function () { + const mockCurrentlyAttachedTarget = { + targetId: '100', + close: sinon.stub().resolves(sinon.stub().resolves()), + } - const mockUpdatedCurrentlyAttachedTarget = { - targetId: '101', - } + const mockUpdatedCurrentlyAttachedTarget = { + targetId: '101', + } - send.withArgs('Target.createTarget', { url: 'about:blank' }).resolves(mockUpdatedCurrentlyAttachedTarget) - send.withArgs('Target.closeTarget', { targetId: '100' }).resolves() - criClientCreateStub.withArgs({ target: '101', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined, fullyManageTabs: undefined }).resolves(mockUpdatedCurrentlyAttachedTarget) + send.withArgs('Target.createTarget', { url: 'about:blank' }).resolves(mockUpdatedCurrentlyAttachedTarget) + send.withArgs('Target.closeTarget', { targetId: '100' }).resolves() + criClientCreateStub.withArgs({ target: '101', onAsynchronousError: onError, host: HOST, port: PORT, protocolManager: undefined, fullyManageTabs: undefined }).resolves(mockUpdatedCurrentlyAttachedTarget) - const browserClient = await getClient() as any + const browserClient = await getClient() as any - browserClient.currentlyAttachedTarget = mockCurrentlyAttachedTarget + browserClient.currentlyAttachedTarget = mockCurrentlyAttachedTarget - await browserClient.resetBrowserTargets(true) + await browserClient.resetBrowserTargets(true) - expect(mockCurrentlyAttachedTarget.close).to.be.called - expect(browserClient.currentlyAttachedTarget).to.eql(mockUpdatedCurrentlyAttachedTarget) - }) + expect(mockCurrentlyAttachedTarget.close).to.be.called + expect(browserClient.currentlyAttachedTarget).to.eql(mockUpdatedCurrentlyAttachedTarget) + }) - it('closes the currently attached target without keeping a tab open', async function () { - const mockCurrentlyAttachedTarget = { - targetId: '100', - close: sinon.stub().resolves(sinon.stub().resolves()), - } + it('closes the currently attached target without keeping a tab open', async function () { + const mockCurrentlyAttachedTarget = { + targetId: '100', + close: sinon.stub().resolves(sinon.stub().resolves()), + } - send.withArgs('Target.closeTarget', { targetId: '100' }).resolves() + send.withArgs('Target.closeTarget', { targetId: '100' }).resolves() - const browserClient = await getClient() as any + const browserClient = await getClient() as any - browserClient.currentlyAttachedTarget = mockCurrentlyAttachedTarget + browserClient.currentlyAttachedTarget = mockCurrentlyAttachedTarget - await browserClient.resetBrowserTargets(false) + await browserClient.resetBrowserTargets(false) - expect(mockCurrentlyAttachedTarget.close).to.be.called - }) + expect(mockCurrentlyAttachedTarget.close).to.be.called + }) - it('throws when there is no currently attached target', async function () { - const browserClient = await getClient() as any + it('throws when there is no currently attached target', async function () { + const browserClient = await getClient() as any - await expect(browserClient.resetBrowserTargets()).to.be.rejected - }) + await expect(browserClient.resetBrowserTargets()).to.be.rejected }) + }) - context('#close', function () { - it('closes the currently attached target if it exists and the browser client', async function () { - const mockCurrentlyAttachedTarget = { - close: sinon.stub().resolves(), - } + context('#close', function () { + it('closes the currently attached target if it exists and the browser client', async function () { + const mockCurrentlyAttachedTarget = { + close: sinon.stub().resolves(), + } - const browserClient = await getClient() as any + const browserClient = await getClient() as any - browserClient.currentlyAttachedTarget = mockCurrentlyAttachedTarget + browserClient.currentlyAttachedTarget = mockCurrentlyAttachedTarget - await browserClient.close() + await browserClient.close() - expect(mockCurrentlyAttachedTarget.close).to.be.called - expect(close).to.be.called - }) + expect(mockCurrentlyAttachedTarget.close).to.be.called + expect(close).to.be.called + }) - it('just the browser client with no currently attached target', async function () { - const browserClient = await getClient() as any + it('just the browser client with no currently attached target', async function () { + const browserClient = await getClient() as any - await browserClient.close() + await browserClient.close() - expect(close).to.be.called - }) + expect(close).to.be.called }) }) }) From 3967b4801ae57e3dba4641df2fa26d98ead06008 Mon Sep 17 00:00:00 2001 From: Carolina Urrea <73137943+canourrea23@users.noreply.github.com> Date: Tue, 31 Oct 2023 11:39:29 -0700 Subject: [PATCH 37/47] fix: update visibility check with overflow: hidden and element on the edge (#27586) Co-authored-by: Chris Breiding Co-authored-by: Matt Schile Co-authored-by: Jennifer Shehane Co-authored-by: Emily Rohrbough Co-authored-by: Emily Rohrbough --- cli/CHANGELOG.md | 8 +++++++ .../driver/cypress/e2e/dom/visibility.cy.ts | 17 +++++++------- .../e2e/dom/visibility_shadow_dom.cy.ts | 8 +++---- packages/driver/src/dom/elements/find.ts | 8 ++++++- packages/driver/src/dom/visibility.ts | 23 +++++++++++++------ 5 files changed, 43 insertions(+), 21 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index eabda4019dff..4cb0cd8cf53a 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -1,4 +1,12 @@ +## 13.4.1 + +_Released 11/7/2023 (PENDING)_ + +**Bugfixes:** + +- Fixed an issue determining visibility when an element is hidden by an ancestor with a shared edge. Fixes [#27514](https://github.com/cypress-io/cypress/issues/27514). + ## 13.4.0 _Released 10/30/2023_ diff --git a/packages/driver/cypress/e2e/dom/visibility.cy.ts b/packages/driver/cypress/e2e/dom/visibility.cy.ts index adaa51f99b81..5dc7495afc30 100644 --- a/packages/driver/cypress/e2e/dom/visibility.cy.ts +++ b/packages/driver/cypress/e2e/dom/visibility.cy.ts @@ -356,25 +356,25 @@ describe('src/cypress/dom/visibility', () => { this.$elOutOfParentBoundsToLeft = add(`\
- position: absolute, out of bounds left + position: absolute, out of bounds left
\ `) this.$elOutOfParentBoundsToRight = add(`\
- position: absolute, out of bounds right + position: absolute, out of bounds right
\ `) this.$elOutOfParentBoundsAbove = add(`\
- position: absolute, out of bounds above + position: absolute, out of bounds above
\ `) this.$elOutOfParentBoundsBelow = add(`\
- position: absolute, out of bounds below + position: absolute, out of bounds below
\ `) @@ -819,10 +819,9 @@ describe('src/cypress/dom/visibility', () => { }) describe('css overflow', () => { - it('is visible when parent doesnt have overflow hidden', function () { - expect(this.$parentNoWidthHeightOverflowAuto.find('span')).to.be.visible - - expect(this.$parentNoWidthHeightOverflowAuto.find('span')).to.not.be.hidden + it('is hidden when parent overflow auto and no width/height', function () { + expect(this.$parentNoWidthHeightOverflowAuto.find('span')).to.not.be.visible + expect(this.$parentNoWidthHeightOverflowAuto.find('span')).to.be.hidden }) it('is hidden when parent overflow hidden and out of bounds to left', function () { @@ -897,7 +896,7 @@ describe('src/cypress/dom/visibility', () => { }) describe('css clip-path', () => { - // TODO: why is this skipped? + // TODO: handle clip path 'hidden' equivalents it.skip('is hidden when outside of parents clip-path', function () { expect(this.$parentWithClipPathAbsolutePositionElOutsideClipPath.find('span')).to.be.hidden }) diff --git a/packages/driver/cypress/e2e/dom/visibility_shadow_dom.cy.ts b/packages/driver/cypress/e2e/dom/visibility_shadow_dom.cy.ts index f34df529e976..5d1b6779e432 100644 --- a/packages/driver/cypress/e2e/dom/visibility_shadow_dom.cy.ts +++ b/packages/driver/cypress/e2e/dom/visibility_shadow_dom.cy.ts @@ -303,7 +303,7 @@ describe('src/cypress/dom/visibility - shadow dom', () => { `
`, - `position: absolute, out of bounds left`, + `position: absolute, out of bounds left`, '#el-out-of-parent-bounds-to-left', ) @@ -316,7 +316,7 @@ describe('src/cypress/dom/visibility - shadow dom', () => { `
`, - `position: absolute, out of bounds right`, + `position: absolute, out of bounds right`, '#el-out-of-parent-bounds-to-right', ) @@ -329,7 +329,7 @@ describe('src/cypress/dom/visibility - shadow dom', () => { `
`, - `position: absolute, out of bounds above`, + `position: absolute, out of bounds above`, '#el-out-of-parent-bounds-above', ) @@ -342,7 +342,7 @@ describe('src/cypress/dom/visibility - shadow dom', () => { `
`, - `position: absolute, out of bounds below`, + `position: absolute, out of bounds below`, '#el-out-of-parent-bounds-below', ) diff --git a/packages/driver/src/dom/elements/find.ts b/packages/driver/src/dom/elements/find.ts index 9e657450eaa5..16f95fa2017a 100644 --- a/packages/driver/src/dom/elements/find.ts +++ b/packages/driver/src/dom/elements/find.ts @@ -176,7 +176,13 @@ export const isAncestor = ($el, $maybeAncestor) => { } export const isChild = ($el, $maybeChild) => { - return $el.children().index($maybeChild) >= 0 + let children = $el.children() + + if (children.length && children[0].nodeName === 'SHADOW-ROOT') { + return isDescendent($el, $maybeChild) + } + + return children.index($maybeChild) >= 0 } export const isDescendent = ($el1, $el2) => { diff --git a/packages/driver/src/dom/visibility.ts b/packages/driver/src/dom/visibility.ts index 9a1be1ac7f26..2a92fae2b963 100644 --- a/packages/driver/src/dom/visibility.ts +++ b/packages/driver/src/dom/visibility.ts @@ -316,24 +316,27 @@ const elIsOutOfBoundsOfAncestorsOverflow = function ($el, $ancestor = getParent( return false } - const elProps = $coordinates.getElementPositioning($el) - if (canClipContent($el, $ancestor)) { + const elProps = $coordinates.getElementPositioning($el) const ancestorProps = $coordinates.getElementPositioning($ancestor) + if (elHasPositionAbsolute($el) && (ancestorProps.width === 0 || ancestorProps.height === 0)) { + return elIsOutOfBoundsOfAncestorsOverflow($el, getParent($ancestor)) + } + // target el is out of bounds if ( // target el is to the right of the ancestor's visible area - (elProps.fromElWindow.left > (ancestorProps.width + ancestorProps.fromElWindow.left)) || + (elProps.fromElWindow.left >= (ancestorProps.width + ancestorProps.fromElWindow.left)) || // target el is to the left of the ancestor's visible area - ((elProps.fromElWindow.left + elProps.width) < ancestorProps.fromElWindow.left) || + ((elProps.fromElWindow.left + elProps.width) <= ancestorProps.fromElWindow.left) || // target el is under the ancestor's visible area - (elProps.fromElWindow.top > (ancestorProps.height + ancestorProps.fromElWindow.top)) || + (elProps.fromElWindow.top >= (ancestorProps.height + ancestorProps.fromElWindow.top)) || // target el is above the ancestor's visible area - ((elProps.fromElWindow.top + elProps.height) < ancestorProps.fromElWindow.top) + ((elProps.fromElWindow.top + elProps.height) <= ancestorProps.fromElWindow.top) ) { return true } @@ -555,5 +558,11 @@ export const getReasonIsHidden = function ($el, options = { checkOpacity: true } /* eslint-enable no-cond-assign */ export default { - isVisible, isHidden, isStrictlyHidden, isHiddenByAncestors, getReasonIsHidden, isW3CFocusable, isW3CRendered, + isVisible, + isHidden, + isStrictlyHidden, + isHiddenByAncestors, + getReasonIsHidden, + isW3CFocusable, + isW3CRendered, } From becb893f07ba3f85f385cc69650e4db4a49e3b95 Mon Sep 17 00:00:00 2001 From: Tanmay Mohapatra Date: Wed, 1 Nov 2023 20:44:40 +0530 Subject: [PATCH 38/47] docs: Fix config option example typo in tooltip (#28174) Co-authored-by: Emily Rohrbough --- cli/types/cypress-npm-api.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/types/cypress-npm-api.d.ts b/cli/types/cypress-npm-api.d.ts index ffeda31685ea..2181f8640001 100644 --- a/cli/types/cypress-npm-api.d.ts +++ b/cli/types/cypress-npm-api.d.ts @@ -382,7 +382,7 @@ declare module 'cypress' { * recommend wrapping your config object with `defineConfig()` * @example * module.exports = defineConfig({ - * viewportWith: 400 + * viewportWidth: 400 * }) * * @see ../types/cypress-npm-api.d.ts From a0cfed5044a94de03e144708a5ff04d06458e802 Mon Sep 17 00:00:00 2001 From: Chris Breiding Date: Thu, 2 Nov 2023 13:55:13 -0400 Subject: [PATCH 39/47] fix: "bypass" proxying network requests from extra browser tabs/windows (#28188) Co-authored-by: Ryan Manuel Co-authored-by: Matt Schile --- cli/CHANGELOG.md | 3 +- packages/proxy/lib/http/index.ts | 7 +- packages/proxy/lib/http/request-middleware.ts | 20 +- .../proxy/lib/http/response-middleware.ts | 22 ++ packages/proxy/lib/types.ts | 1 + .../test/unit/http/request-middleware.spec.ts | 71 +++-- .../unit/http/response-middleware.spec.ts | 42 +++ .../server/lib/browsers/browser-cri-client.ts | 155 ++++++++++- .../unit/browsers/browser-cri-client_spec.ts | 247 ++++++++++++++++++ 9 files changed, 524 insertions(+), 44 deletions(-) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 4cb0cd8cf53a..f2843de97cd8 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -6,6 +6,7 @@ _Released 11/7/2023 (PENDING)_ **Bugfixes:** - Fixed an issue determining visibility when an element is hidden by an ancestor with a shared edge. Fixes [#27514](https://github.com/cypress-io/cypress/issues/27514). +- Fixed an issue where network requests made from tabs/windows other than the main Cypress tab would be delayed. Fixes [#28113](https://github.com/cypress-io/cypress/issues/28113). ## 13.4.0 @@ -83,7 +84,7 @@ _Released 09/12/2023_ **Bugfixes:** - Edge cases where `cy.intercept()` would not properly intercept and asset response bodies would not properly be captured for Test Replay have been addressed. Addressed in [#27771](https://github.com/cypress-io/cypress/pull/27771). -- Fixed an issue where `enter`, `keyup`, and `space` events were not triggering `click` events properly in some versions of Firefox. Addressed in [#27715](https://github.com/cypress-io/cypress/pull/27715). +- Fixed an issue where `enter`, `keyup`, and `space` events were not triggering `click` events properly in some versions of Firefox. Addressed in [#27715](https://github.com/cypress-io/cypress/pull/27715). - Fixed a regression in `13.0.0` where tests using Basic Authorization can potentially hang indefinitely on chromium browsers. Addressed in [#27781](https://github.com/cypress-io/cypress/pull/27781). - Fixed a regression in `13.0.0` where component tests using an intercept that matches all requests can potentially hang indefinitely. Addressed in [#27788](https://github.com/cypress-io/cypress/pull/27788). diff --git a/packages/proxy/lib/http/index.ts b/packages/proxy/lib/http/index.ts index 7549e508e67e..a1957649ec9d 100644 --- a/packages/proxy/lib/http/index.ts +++ b/packages/proxy/lib/http/index.ts @@ -106,6 +106,7 @@ const READONLY_MIDDLEWARE_KEYS: (keyof HttpMiddlewareThis<{}>)[] = [ 'onResponse', 'onError', 'skipMiddleware', + 'onlyRunMiddleware', ] export type HttpMiddlewareThis = HttpMiddlewareCtx & ServerCtx & Readonly<{ @@ -119,6 +120,7 @@ export type HttpMiddlewareThis = HttpMiddlewareCtx & ServerCtx & Readonly< onResponse: (incomingRes: IncomingMessage, resStream: Readable) => void onError: (error: Error) => void skipMiddleware: (name: string) => void + onlyRunMiddleware: (names: string[]) => void }> export function _runStage (type: HttpStages, ctx: any, onError: Function) { @@ -220,9 +222,12 @@ export function _runStage (type: HttpStages, ctx: any, onError: Function) { _end() }, onError: _onError, - skipMiddleware: (name) => { + skipMiddleware: (name: string) => { ctx.middleware[type] = _.omit(ctx.middleware[type], name) }, + onlyRunMiddleware: (names: string[]) => { + ctx.middleware[type] = _.pick(ctx.middleware[type], names) + }, ...ctx, } diff --git a/packages/proxy/lib/http/request-middleware.ts b/packages/proxy/lib/http/request-middleware.ts index 08d4490a1c33..4e7dcc39bce5 100644 --- a/packages/proxy/lib/http/request-middleware.ts +++ b/packages/proxy/lib/http/request-middleware.ts @@ -10,6 +10,7 @@ import { doesTopNeedToBeSimulated } from './util/top-simulation' import type { HttpMiddleware } from './' import type { CypressIncomingRequest } from '../types' + // do not use a debug namespace in this file - use the per-request `this.debug` instead // available as cypress-verbose:proxy:http // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -31,13 +32,28 @@ const ExtractCypressMetadataHeaders: RequestMiddleware = function () { const span = telemetry.startSpan({ name: 'extract:cypress:metadata:headers', parentSpan: this.reqMiddlewareSpan, isVerbose }) this.req.isAUTFrame = !!this.req.headers['x-cypress-is-aut-frame'] + this.req.isFromExtraTarget = !!this.req.headers['x-cypress-is-from-extra-target'] + + if (this.req.headers['x-cypress-is-aut-frame']) { + delete this.req.headers['x-cypress-is-aut-frame'] + } span?.setAttributes({ isAUTFrame: this.req.isAUTFrame, + isFromExtraTarget: this.req.isFromExtraTarget, }) - if (this.req.headers['x-cypress-is-aut-frame']) { - delete this.req.headers['x-cypress-is-aut-frame'] + // we only want to intercept requests from the main target and not ones from + // extra tabs or windows, so run the bare minimum request/response middleware + // to send the request/response directly through + if (this.req.isFromExtraTarget) { + this.debug('request for [%s %s] is from an extra target', this.req.method, this.req.proxiedUrl) + + delete this.req.headers['x-cypress-is-from-extra-target'] + + this.onlyRunMiddleware([ + 'SendRequestOutgoing', + ]) } span?.end() diff --git a/packages/proxy/lib/http/response-middleware.ts b/packages/proxy/lib/http/response-middleware.ts index ef6d57e44ef2..903992705990 100644 --- a/packages/proxy/lib/http/response-middleware.ts +++ b/packages/proxy/lib/http/response-middleware.ts @@ -167,6 +167,27 @@ const LogResponse: ResponseMiddleware = function () { this.next() } +const FilterNonProxiedResponse: ResponseMiddleware = function () { + // if the request is from an extra target (i.e. not the main Cypress tab, but + // an extra tab/window), we want to skip any manipulation of the response and + // only run the middleware necessary to get it back to the browser + if (this.req.isFromExtraTarget) { + this.debug('response for [%s %s] is from extra target', this.req.method, this.req.proxiedUrl) + + this.onlyRunMiddleware([ + 'AttachPlainTextStreamFn', + 'PatchExpressSetHeader', + 'MaybeSendRedirectToClient', + 'CopyResponseStatusCode', + 'MaybeEndWithEmptyBody', + 'GzipBody', + 'SendResponseBodyToClient', + ]) + } + + this.next() +} + const AttachPlainTextStreamFn: ResponseMiddleware = function () { this.makeResStreamPlainText = function () { const span = telemetry.startSpan({ name: 'make:res:stream:plain:text', parentSpan: this.resMiddlewareSpan, isVerbose }) @@ -869,6 +890,7 @@ const SendResponseBodyToClient: ResponseMiddleware = function () { export default { LogResponse, + FilterNonProxiedResponse, AttachPlainTextStreamFn, InterceptResponse, PatchExpressSetHeader, diff --git a/packages/proxy/lib/types.ts b/packages/proxy/lib/types.ts index d27fa2b7f798..8ef5433ae368 100644 --- a/packages/proxy/lib/types.ts +++ b/packages/proxy/lib/types.ts @@ -18,6 +18,7 @@ export type CypressIncomingRequest = Request & { followRedirect?: boolean isAUTFrame: boolean credentialsLevel?: RequestCredentialLevel + isFromExtraTarget: boolean /** * Resource type from browserPreRequest. Copied to req so intercept matching can work. */ diff --git a/packages/proxy/test/unit/http/request-middleware.spec.ts b/packages/proxy/test/unit/http/request-middleware.spec.ts index 90254323063b..3f4351667bb1 100644 --- a/packages/proxy/test/unit/http/request-middleware.spec.ts +++ b/packages/proxy/test/unit/http/request-middleware.spec.ts @@ -33,49 +33,66 @@ describe('http/request-middleware', () => { describe('ExtractCypressMetadataHeaders', () => { const { ExtractCypressMetadataHeaders } = RequestMiddleware - it('removes x-cypress-is-aut-frame header when it exists, sets in on the req', async () => { - const ctx = { + function prepareContext (headers = {}) { + return { getAUTUrl: sinon.stub().returns('http://localhost:8080'), + onlyRunMiddleware: sinon.stub(), remoteStates: { isPrimarySuperDomainOrigin: sinon.stub().returns(false), }, req: { - headers: { - 'x-cypress-is-aut-frame': 'true', - }, + headers, } as Partial, res: { on: (event, listener) => {}, off: (event, listener) => {}, }, } + } - await testMiddleware([ExtractCypressMetadataHeaders], ctx) - .then(() => { - expect(ctx.req.headers['x-cypress-is-aut-frame']).not.to.exist - expect(ctx.req.isAUTFrame).to.be.true + context('x-cypress-is-aut-frame', () => { + it('when it exists, removes header and sets in on the req', async () => { + const ctx = prepareContext({ + 'x-cypress-is-aut-frame': 'true', + }) + + await testMiddleware([ExtractCypressMetadataHeaders], ctx) + .then(() => { + expect(ctx.req.headers!['x-cypress-is-aut-frame']).not.to.exist + expect(ctx.req.isAUTFrame).to.be.true + }) + }) + + it('when it does not exist, sets in on the req', async () => { + const ctx = prepareContext() + + await testMiddleware([ExtractCypressMetadataHeaders], ctx).then(() => { + expect(ctx.req.headers!['x-cypress-is-aut-frame']).not.to.exist + expect(ctx.req.isAUTFrame).to.be.false + }) }) }) - it('removes x-cypress-is-aut-frame header when it does not exist, sets in on the req', async () => { - const ctx = { - getAUTUrl: sinon.stub().returns('http://localhost:8080'), - remoteStates: { - isPrimarySuperDomainOrigin: sinon.stub().returns(false), - }, - req: { - headers: {}, - } as Partial, - res: { - on: (event, listener) => {}, - off: (event, listener) => {}, - }, - } + context('x-cypress-is-from-extra-target', () => { + it('when it exists, sets in on the req and only runs necessary middleware', async () => { + const ctx = prepareContext({ + 'x-cypress-is-from-extra-target': 'true', + }) - await testMiddleware([ExtractCypressMetadataHeaders], ctx) - .then(() => { - expect(ctx.req.headers['x-cypress-is-aut-frame']).not.to.exist - expect(ctx.req.isAUTFrame).to.be.false + await testMiddleware([ExtractCypressMetadataHeaders], ctx) + + expect(ctx.req.headers!['x-cypress-is-from-extra-target']).not.to.exist + expect(ctx.req.isFromExtraTarget).to.be.true + expect(ctx.onlyRunMiddleware).to.be.calledWith(['SendRequestOutgoing']) + }) + + it('when it does not exist, removes header and sets in on the req', async () => { + const ctx = prepareContext() + + await testMiddleware([ExtractCypressMetadataHeaders], ctx) + + expect(ctx.req.headers!['x-cypress-is-from-extra-target']).not.to.exist + expect(ctx.req.isFromExtraTarget).to.be.false }) }) }) diff --git a/packages/proxy/test/unit/http/response-middleware.spec.ts b/packages/proxy/test/unit/http/response-middleware.spec.ts index 6adfa1ba472c..afeb43492b58 100644 --- a/packages/proxy/test/unit/http/response-middleware.spec.ts +++ b/packages/proxy/test/unit/http/response-middleware.spec.ts @@ -13,6 +13,7 @@ describe('http/response-middleware', function () { it('exports the members in the correct order', function () { expect(_.keys(ResponseMiddleware)).to.have.ordered.members([ 'LogResponse', + 'FilterNonProxiedResponse', 'AttachPlainTextStreamFn', 'InterceptResponse', 'PatchExpressSetHeader', @@ -99,6 +100,47 @@ describe('http/response-middleware', function () { }) }) + describe('FilterNonProxiedResponse', () => { + const { FilterNonProxiedResponse } = ResponseMiddleware + let ctx + + beforeEach(() => { + ctx = { + onlyRunMiddleware: sinon.stub(), + req: {}, + res: { + off: (event, listener) => {}, + }, + } + }) + + it('runs minimal subsequent middleware if request is from an extra target', () => { + ctx.req.isFromExtraTarget = true + + return testMiddleware([FilterNonProxiedResponse], ctx) + .then(() => { + expect(ctx.onlyRunMiddleware).to.be.calledWith([ + 'AttachPlainTextStreamFn', + 'PatchExpressSetHeader', + 'MaybeSendRedirectToClient', + 'CopyResponseStatusCode', + 'MaybeEndWithEmptyBody', + 'GzipBody', + 'SendResponseBodyToClient', + ]) + }) + }) + + it('runs all subsequent middleware if request is not from an extra target', () => { + ctx.req.isFromMainTarget = false + + return testMiddleware([FilterNonProxiedResponse], ctx) + .then(() => { + expect(ctx.onlyRunMiddleware).not.to.be.called + }) + }) + }) + describe('MaybeStripDocumentDomainFeaturePolicy', function () { const { MaybeStripDocumentDomainFeaturePolicy } = ResponseMiddleware let ctx diff --git a/packages/server/lib/browsers/browser-cri-client.ts b/packages/server/lib/browsers/browser-cri-client.ts index 3723cbfa71fb..9cc859921179 100644 --- a/packages/server/lib/browsers/browser-cri-client.ts +++ b/packages/server/lib/browsers/browser-cri-client.ts @@ -47,7 +47,11 @@ interface ManageTabsOptions { interface AttachedToTargetOptions { browserClient: CriClient + browserCriClient: BrowserCriClient + CriConstructor?: typeof CRI event: Protocol.Target.AttachedToTargetEvent + host: string + port: number protocolManager?: ProtocolManagerShape } @@ -159,6 +163,13 @@ const retryWithIncreasingDelay = async (retryable: () => Promise, browserN return retry() } +type TargetId = string + +interface ExtraTarget { + client: CRI.Client + targetInfo: Protocol.Target.TargetInfo +} + export class BrowserCriClient { private browserClient: CriClient private versionInfo: CRI.VersionResult @@ -177,6 +188,7 @@ export class BrowserCriClient { closed = false resettingBrowserTargets = false gracefulShutdown?: Boolean + extraTargetClients: Map = new Map() onClose: Function | null = null private constructor ({ browserClient, versionInfo, host, port, browserName, onAsynchronousError, protocolManager, fullyManageTabs }: BrowserCriClientOptions) { @@ -244,7 +256,7 @@ export class BrowserCriClient { ] browserClient.on('Target.attachedToTarget', async (event: Protocol.Target.AttachedToTargetEvent) => { - await this._onAttachToTarget({ browserClient, event, protocolManager }) + await this._onAttachToTarget({ browserClient, browserCriClient, event, host, port, protocolManager }) }) browserClient.on('Target.targetDestroyed', (event: Protocol.Target.TargetDestroyedEvent) => { @@ -255,22 +267,115 @@ export class BrowserCriClient { } static async _onAttachToTarget (options: AttachedToTargetOptions) { - const { browserClient, event, protocolManager } = options + const { browserClient, browserCriClient, CriConstructor, event, host, port, protocolManager } = options + const CreateCRI = CriConstructor || CRI + const { sessionId, targetInfo, waitingForDebugger } = event + let { targetId, url } = targetInfo - debug('Target.attachedToTarget %o', event.targetInfo) + debug('Target.attachedToTarget %o', targetInfo) try { - if (event.targetInfo.type !== 'page') { + // The basic approach here is we attach to targets and enable network traffic + // We must attach in a paused state so that we can enable network traffic before the target starts running. + if (targetInfo.type !== 'page') { await browserClient.send('Network.enable', protocolManager?.networkEnableOptions ?? DEFAULT_NETWORK_ENABLE_OPTIONS, event.sessionId) } + } catch (error) { + // it's possible that the target was closed before we could enable + // network and continue, in that case, just ignore + debug('error running Network.enable:', error) + } + + if (!waitingForDebugger) { + debug('Not waiting for debugger (id: %s)', targetId) + + // a target created before we started listening won't be waiting + // for the debugger and is therefore not an extra target + return + } - if (event.waitingForDebugger) { - await browserClient.send('Runtime.runIfWaitingForDebugger', undefined, event.sessionId) + async function run () { + try { + await browserClient.send('Runtime.runIfWaitingForDebugger', undefined, sessionId) + } catch (error) { + // it's possible that the target was closed before we could enable + // network and continue, in that case, just ignore + debug('error running Runtime.runIfWaitingForDebugger:', error) } - } catch (error) { - // it's possible that the target was closed before we could enable network and continue, in that case, just ignore - debug('error attaching to target browser', error) } + + // the url often isn't specified with this event, so we get it + // from Target.getTargets + if (!url) { + const { targetInfos } = await browserClient.send('Target.getTargets') + + const thisTarget = targetInfos.find((target) => target.targetId === targetId) + + if (thisTarget) { + url = thisTarget.url + } + } + + if ( + // if resetting browser targets, the first target attached to is the + // main Cypress tab, but hasn't been set as + // browserCriClient.currentlyAttachedTarget yet + browserCriClient.resettingBrowserTargets + // is the main Cypress tab + || targetId === browserCriClient.currentlyAttachedTarget?.targetId + // is not a tab/window, such as a service worker + || targetInfo.type !== 'page' + // is DevTools + || url.includes('devtools://') + // is the Launchpad + || url.includes('__launchpad') + // is chrome extension service worker + || url.includes('chrome-extension://') + ) { + debug('Not an extra target (id: %s)', targetId) + + // in these cases, we don't want to track the targets as extras. + // we're only interested in extra tabs or windows + return await run() + } + + debug('Connect as extra target (id: %s)', targetId) + + let extraTargetCriClient + + try { + extraTargetCriClient = await CreateCRI({ + host, + port, + target: targetId, + local: true, + useHostName: true, + }) + } catch (err: any) { + debug('Errored connecting to target (id: %s): %s', targetId, err?.stack || err) + + return await run() + } + + browserCriClient.addExtraTargetClient(targetInfo, extraTargetCriClient) + + await extraTargetCriClient.send('Fetch.enable') + + // we mark extra targets with this header, so that the proxy can recognize + // where they came from and run only the minimal middleware necessary + extraTargetCriClient.on('Fetch.requestPaused', async (params: Protocol.Fetch.RequestPausedEvent) => { + const details: Protocol.Fetch.ContinueRequestRequest = { + requestId: params.requestId, + headers: [{ name: 'X-Cypress-Is-From-Extra-Target', value: 'true' }], + } + + extraTargetCriClient.send('Fetch.continueRequest', details).catch((err) => { + // swallow this error so it doesn't crash Cypress + debug('continueRequest failed, url: %s, error: %s', params.request.url, err?.stack || err) + }) + }) + + await run() } static _onTargetDestroyed ({ browserClient, browserCriClient, browserName, event, onAsynchronousError }: TargetDestroyedOptions) { @@ -281,9 +386,17 @@ export class BrowserCriClient { resettingBrowserTargets: browserCriClient.resettingBrowserTargets, }) - // we may have gotten a delayed "Target.targetDestroyed" even for a page that we - // have already closed/disposed, so unless this matches our current target then bail - if (event.targetId !== browserCriClient.currentlyAttachedTarget?.targetId) { + const { targetId } = event + + if (targetId !== browserCriClient.currentlyAttachedTarget?.targetId) { + if (browserCriClient.hasExtraTargetClient(targetId)) { + debug('Close extra target client (id: %s)') + browserCriClient.getExtraTargetClient(targetId)!.client.close().catch(() => { }) + browserCriClient.removeExtraTargetClient(targetId) + } + + // we may have gotten a delayed "Target.targetDestroyed" event for a page that we + // have already closed/disposed, so unless this matches our current target then bail return } @@ -333,7 +446,7 @@ export class BrowserCriClient { errors.throwErr('BROWSER_PROCESS_CLOSED_UNEXPECTEDLY', browserName) }) .catch(Bluebird.TimeoutError, () => { - debug('browser websocket did not close, page was closed %o', { targetId: event.targetId }) + debug('browser websocket did not close, page was closed %o', { targetId }) // the browser websocket didn't close meaning // only the page was closed, not the browser errors.throwErr('BROWSER_PAGE_CLOSED_UNEXPECTEDLY', browserName) @@ -444,6 +557,22 @@ export class BrowserCriClient { this.resettingBrowserTargets = false } + addExtraTargetClient (targetInfo: Protocol.Target.TargetInfo, client: CRI.Client) { + this.extraTargetClients.set(targetInfo.targetId, { client, targetInfo }) + } + + hasExtraTargetClient (targetId: TargetId) { + return this.extraTargetClients.has(targetId) + } + + getExtraTargetClient (targetId: TargetId) { + return this.extraTargetClients.get(targetId) + } + + removeExtraTargetClient (targetId: TargetId) { + this.extraTargetClients.delete(targetId) + } + /** * Closes the browser client socket as well as the socket for the currently attached page target */ diff --git a/packages/server/test/unit/browsers/browser-cri-client_spec.ts b/packages/server/test/unit/browsers/browser-cri-client_spec.ts index 40fd09e09fac..00bb9ccedcec 100644 --- a/packages/server/test/unit/browsers/browser-cri-client_spec.ts +++ b/packages/server/test/unit/browsers/browser-cri-client_spec.ts @@ -5,6 +5,7 @@ import * as protocol from '../../../lib/browsers/protocol' import { stripAnsi } from '@packages/errors' import net from 'net' import { ProtocolManagerShape } from '@packages/types' +import type { Protocol } from 'devtools-protocol' const HOST = '127.0.0.1' const PORT = 50505 @@ -129,6 +130,252 @@ describe('lib/browsers/cri-client', function () { }) }) + context('._onAttachToTarget', () => { + let options: any + + beforeEach(() => { + options = { + browserClient: { + send: sinon.stub(), + }, + browserCriClient: { + addExtraTargetClient: sinon.stub(), + currentlyAttachedTarget: { + targetId: 'main-target-id', + }, + resettingBrowserTargets: false, + }, + CriConstructor: sinon.stub(), + event: { + sessionId: 'session-id', + targetInfo: { + targetId: 'target-id', + type: 'page', + url: 'http://the.url', + } as Protocol.Target.TargetInfo, + waitingForDebugger: true, + }, + host: 'localhost', + port: 1234, + } + }) + + it('is a noop if not waiting for debugger', async () => { + options.event.waitingForDebugger = false + + await BrowserCriClient._onAttachToTarget(options as any) + + expect(options.browserClient.send).not.to.be.called + }) + + it('gets url from Target.getTargets if not in event', async () => { + options.event.targetInfo.url = '' + + options.browserClient.send.withArgs('Target.getTargets').resolves({ + targetInfos: [{ + targetId: 'target-id', + url: 'devtools://some.devtools', + }], + }) + + options.browserClient.send.withArgs('Runtime.runIfWaitingForDebugger').resolves() + + await BrowserCriClient._onAttachToTarget(options as any) + + expect(options.browserClient.send).to.be.calledWith('Target.getTargets') + }) + + it('is a noop sending Runtime.runIfWaitingForDebugger if resetting browser targets', async () => { + options.browserCriClient.resettingBrowserTargets = true + options.browserClient.send.withArgs('Runtime.runIfWaitingForDebugger').resolves() + + await BrowserCriClient._onAttachToTarget(options as any) + + expect(options.CriConstructor).not.to.be.called + expect(options.browserClient.send).to.be.calledWith('Runtime.runIfWaitingForDebugger', undefined, 'session-id') + }) + + it('is a noop sending Runtime.runIfWaitingForDebugger if target is the main Cypress tab', async () => { + options.event.targetInfo.targetId = 'main-target-id' + options.browserClient.send.withArgs('Runtime.runIfWaitingForDebugger').resolves() + + await BrowserCriClient._onAttachToTarget(options as any) + + expect(options.CriConstructor).not.to.be.called + expect(options.browserClient.send).to.be.calledWith('Runtime.runIfWaitingForDebugger', undefined, 'session-id') + }) + + it('is a noop sending Runtime.runIfWaitingForDebugger if target is not a tab or window', async () => { + options.event.targetInfo.type = 'service_worker' + options.browserClient.send.withArgs('Runtime.runIfWaitingForDebugger').resolves() + + await BrowserCriClient._onAttachToTarget(options as any) + + expect(options.CriConstructor).not.to.be.called + expect(options.browserClient.send).to.be.calledWith('Runtime.runIfWaitingForDebugger', undefined, 'session-id') + }) + + it('is a noop sending Runtime.runIfWaitingForDebugger if target is DevTools', async () => { + options.event.targetInfo.url = 'devtools://dev.tools' + options.browserClient.send.withArgs('Runtime.runIfWaitingForDebugger').resolves() + + await BrowserCriClient._onAttachToTarget(options as any) + + expect(options.CriConstructor).not.to.be.called + expect(options.browserClient.send).to.be.calledWith('Runtime.runIfWaitingForDebugger', undefined, 'session-id') + }) + + it('is a noop sending Runtime.runIfWaitingForDebugger if target is the Launchpad', async () => { + options.event.targetInfo.url = 'http://localhost:1234/__launchpad' + options.browserClient.send.withArgs('Runtime.runIfWaitingForDebugger').resolves() + + await BrowserCriClient._onAttachToTarget(options as any) + + expect(options.CriConstructor).not.to.be.called + expect(options.browserClient.send).to.be.calledWith('Runtime.runIfWaitingForDebugger', undefined, 'session-id') + }) + + it('is a noop sending Runtime.runIfWaitingForDebugger if part of a chrome extension', async () => { + options.event.targetInfo.url = 'chrome-extension://some.extension' + options.browserClient.send.withArgs('Runtime.runIfWaitingForDebugger').resolves() + + await BrowserCriClient._onAttachToTarget(options as any) + + expect(options.CriConstructor).not.to.be.called + expect(options.browserClient.send).to.be.calledWith('Runtime.runIfWaitingForDebugger', undefined, 'session-id') + }) + + it('is a noop sending Runtime.runIfWaitingForDebugger if connecting to target errors', async () => { + options.CriConstructor.rejects(new Error('failed to connect')) + options.browserClient.send.withArgs('Runtime.runIfWaitingForDebugger').resolves() + + await BrowserCriClient._onAttachToTarget(options as any) + + expect(options.CriConstructor).to.be.called + expect(options.browserCriClient.addExtraTargetClient).not.to.be.called + expect(options.browserClient.send).to.be.calledWith('Runtime.runIfWaitingForDebugger', undefined, 'session-id') + }) + + it('connects to target and sends Fetch.enable', async () => { + const criClient = { + send: sinon.stub(), + on: sinon.stub(), + } + + options.CriConstructor.returns(criClient) + options.browserClient.send.withArgs('Fetch.enable').resolves() + options.browserClient.send.withArgs('Runtime.runIfWaitingForDebugger').resolves() + + await BrowserCriClient._onAttachToTarget(options as any) + + expect(options.CriConstructor).to.be.called + expect(options.browserCriClient.addExtraTargetClient).to.be.calledWith(options.event.targetInfo, criClient) + expect(criClient.send).to.be.calledWith('Fetch.enable') + expect(criClient.on).to.be.calledWith('Fetch.requestPaused', sinon.match.func) + expect(options.browserClient.send).to.be.calledWith('Runtime.runIfWaitingForDebugger', undefined, 'session-id') + }) + + it('adds X-Cypress-Is-From-Extra-Target header to requests from extra target', async () => { + const criClient = { + send: sinon.stub(), + on: sinon.stub(), + } + + options.CriConstructor.returns(criClient) + options.browserClient.send.withArgs('Fetch.enable').resolves() + options.browserClient.send.withArgs('Runtime.runIfWaitingForDebugger').resolves() + criClient.send.withArgs('Fetch.continueRequest').resolves() + + await BrowserCriClient._onAttachToTarget(options as any) + await criClient.on.lastCall.args[1]({ requestId: 'request-id' }) + + expect(criClient.send).to.be.calledWith('Fetch.continueRequest', { + requestId: 'request-id', + headers: [{ name: 'X-Cypress-Is-From-Extra-Target', value: 'true' }], + }) + }) + + it('ignores any errors from continuing request', async () => { + const criClient = { + send: sinon.stub(), + on: sinon.stub(), + } + + options.CriConstructor.returns(criClient) + options.browserClient.send.withArgs('Fetch.enable').resolves() + options.browserClient.send.withArgs('Runtime.runIfWaitingForDebugger').resolves() + criClient.send.withArgs('Fetch.continueRequest').rejects(new Error('continuing request failed')) + + await BrowserCriClient._onAttachToTarget(options as any) + await criClient.on.lastCall.args[1]({ requestId: 'request-id', request: { url: '' } }) + // error is caught or else the test would fail + }) + }) + + context('._onTargetDestroyed', () => { + describe('when not the currently attached target', () => { + let options: any + + beforeEach(() => { + options = { + browserCriClient: { + hasExtraTargetClient: sinon.stub().returns(true), + getExtraTargetClient: sinon.stub(), + removeExtraTargetClient: sinon.stub(), + currentlyAttachedTarget: { + targetId: 'main-target-id', + close: sinon.stub().resolves(), + }, + resettingBrowserTargets: false, + }, + event: { + targetId: 'target-id', + }, + } + }) + + it('is noop if target is not currently tracked', () => { + options.browserCriClient.hasExtraTargetClient.returns(false) + + BrowserCriClient._onTargetDestroyed(options as any) + + expect(options.browserCriClient.getExtraTargetClient).not.to.be.called + expect(options.browserCriClient.currentlyAttachedTarget.close).not.to.be.called + }) + + it('closes the extra target client', () => { + const client = { close: sinon.stub().resolves() } + + options.browserCriClient.getExtraTargetClient.returns({ client }) + + BrowserCriClient._onTargetDestroyed(options as any) + + expect(client.close).to.be.called + }) + + it('ignores errors closing the extra target client', () => { + const client = { close: sinon.stub().rejects(new Error('closing failed')) } + + options.browserCriClient.getExtraTargetClient.returns({ client }) + + BrowserCriClient._onTargetDestroyed(options as any) + + expect(options.browserCriClient.removeExtraTargetClient).to.be.calledWith('target-id') + // error is caught or else the test would fail + }) + + it('removes the extra target client from the tracker', () => { + const client = { close: sinon.stub().resolves() } + + options.browserCriClient.getExtraTargetClient.returns({ client }) + + BrowserCriClient._onTargetDestroyed(options as any) + + expect(options.browserCriClient.removeExtraTargetClient).to.be.calledWith('target-id') + }) + }) + }) + context('#ensureMinimumProtocolVersion', function () { function withProtocolVersion (actual, test) { return getClient() From 969d28c59c27f941b813929e0a362deee9395f6c Mon Sep 17 00:00:00 2001 From: Matt Schile Date: Thu, 2 Nov 2023 14:23:25 -0600 Subject: [PATCH 40/47] fix: pass undefined to test:before:after:run:async if there isn't a next test (#28213) --- .circleci/workflows.yml | 3 +- cli/CHANGELOG.md | 1 + ...perimentalRetries.mochaEvents.snapshots.ts | 201 ++++++++++++++++++ .../runner/retries.mochaEvents.snapshots.ts | 33 +++ ...perimentalRetries.mochaEvents.snapshots.ts | 183 ++++++++++++++++ .../runner/runner.mochaEvents.snapshots.ts | 15 ++ .../e2e/commands/sessions/sessions.cy.js | 14 ++ .../driver/src/cy/commands/sessions/index.ts | 2 +- packages/driver/src/cypress.ts | 2 +- packages/driver/src/cypress/runner.ts | 18 +- system-tests/__snapshots__/protocol_spec.js | 24 +-- 11 files changed, 469 insertions(+), 27 deletions(-) diff --git a/.circleci/workflows.yml b/.circleci/workflows.yml index 27157262ca5a..3a09a5b7aa1a 100644 --- a/.circleci/workflows.yml +++ b/.circleci/workflows.yml @@ -87,6 +87,7 @@ windowsWorkflowFilters: &windows-workflow-filters - equal: [ 'chore/update_webpack_deps_to_latest_webpack4_compat', << pipeline.git.branch >> ] - equal: [ 'lerna-optimize-tasks', << pipeline.git.branch >> ] - equal: [ 'ryanm/fix/better-sqlite3', << pipeline.git.branch >> ] + - equal: [ 'mschile/test-before-after-run-async', << pipeline.git.branch >> ] - matches: pattern: /^release\/\d+\.\d+\.\d+$/ value: << pipeline.git.branch >> @@ -3620,4 +3621,4 @@ workflows: <<: *darwin-workflow-filters windows: <<: *windows-workflow - <<: *windows-workflow-filters \ No newline at end of file + <<: *windows-workflow-filters diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index f2843de97cd8..db8114eaff5d 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -7,6 +7,7 @@ _Released 11/7/2023 (PENDING)_ - Fixed an issue determining visibility when an element is hidden by an ancestor with a shared edge. Fixes [#27514](https://github.com/cypress-io/cypress/issues/27514). - Fixed an issue where network requests made from tabs/windows other than the main Cypress tab would be delayed. Fixes [#28113](https://github.com/cypress-io/cypress/issues/28113). +- Stopped processing CDP events at the end of a spec when Test Isolation is off and Test Replay is enabled. Addressed in [#28213](https://github.com/cypress-io/cypress/pull/28213). ## 13.4.0 diff --git a/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.snapshots.ts b/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.snapshots.ts index c4dcf888d418..8c3902c0f85b 100644 --- a/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.snapshots.ts +++ b/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.snapshots.ts @@ -21684,6 +21684,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -22129,6 +22132,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -22548,6 +22554,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -22967,6 +22976,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -23386,6 +23398,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -23861,6 +23876,9 @@ export const snapshots = { retries: 5, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -24356,6 +24374,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -24911,6 +24932,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -25309,6 +25333,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -25677,6 +25704,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -25982,6 +26012,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -26277,6 +26310,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -26572,6 +26608,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -26867,6 +26906,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -27206,6 +27248,9 @@ export const snapshots = { retries: 6, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -28071,6 +28116,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -28516,6 +28564,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -28935,6 +28986,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -29354,6 +29408,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -29773,6 +29830,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -30192,6 +30252,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -30611,6 +30674,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -31030,6 +31096,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -31449,6 +31518,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -31948,6 +32020,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -32455,6 +32530,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -33010,6 +33088,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -33408,6 +33489,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -33776,6 +33860,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -34081,6 +34168,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -34376,6 +34466,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -34671,6 +34764,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -34966,6 +35062,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -35261,6 +35360,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -35556,6 +35658,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -35851,6 +35956,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -36214,6 +36322,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -37091,6 +37202,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -37616,6 +37730,9 @@ export const snapshots = { retries: 1, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -38123,6 +38240,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -38678,6 +38798,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -39076,6 +39199,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -39398,6 +39524,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -39771,6 +39900,9 @@ export const snapshots = { retries: 2, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -41584,6 +41716,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -41927,6 +42062,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -42237,6 +42375,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -42540,6 +42681,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -42843,6 +42987,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -43146,6 +43293,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -43449,6 +43599,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -43798,6 +43951,9 @@ export const snapshots = { retries: 6, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -44703,6 +44859,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -45046,6 +45205,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -45356,6 +45518,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -45659,6 +45824,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -45962,6 +46130,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -46265,6 +46436,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -46568,6 +46742,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -46871,6 +47048,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -47174,6 +47354,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -47477,6 +47660,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -47850,6 +48036,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -48767,6 +48956,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -49110,6 +49302,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -49420,6 +49615,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -49793,6 +49991,9 @@ export const snapshots = { retries: 2, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', diff --git a/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts b/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts index 7404d1303c40..0ce432497d39 100644 --- a/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts +++ b/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts @@ -3504,6 +3504,9 @@ export const snapshots = { retries: 2, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -4005,6 +4008,9 @@ export const snapshots = { retries: 1, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -4500,6 +4506,9 @@ export const snapshots = { retries: 2, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -5055,6 +5064,9 @@ export const snapshots = { retries: 2, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -5453,6 +5465,9 @@ export const snapshots = { retries: 2, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -5775,6 +5790,9 @@ export const snapshots = { retries: 2, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -6124,6 +6142,9 @@ export const snapshots = { retries: 2, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -7281,6 +7302,9 @@ export const snapshots = { retries: 2, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -7624,6 +7648,9 @@ export const snapshots = { retries: 2, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -7934,6 +7961,9 @@ export const snapshots = { retries: 2, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -8283,6 +8313,9 @@ export const snapshots = { retries: 2, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', diff --git a/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.snapshots.ts b/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.snapshots.ts index c30468d930f3..469d4bb05311 100644 --- a/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.snapshots.ts +++ b/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.snapshots.ts @@ -1037,6 +1037,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -1289,6 +1292,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -1539,6 +1545,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -1789,6 +1798,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -2039,6 +2051,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -2295,6 +2310,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -2618,6 +2636,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -2870,6 +2891,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -3120,6 +3144,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -3370,6 +3397,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -3620,6 +3650,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -3870,6 +3903,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -4120,6 +4156,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -4370,6 +4409,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -4620,6 +4662,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -4876,6 +4921,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -5199,6 +5247,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -5451,6 +5502,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -5701,6 +5755,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -5951,6 +6008,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -6201,6 +6261,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -6451,6 +6514,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -6701,6 +6767,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -6951,6 +7020,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -7201,6 +7273,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -7457,6 +7532,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -7753,6 +7831,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -8300,6 +8381,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -8847,6 +8931,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -9427,6 +9514,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -9732,6 +9822,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -10035,6 +10128,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -10338,6 +10434,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -10641,6 +10740,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -10952,6 +11054,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -11289,6 +11394,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -11594,6 +11702,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -11897,6 +12008,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -12200,6 +12314,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -12503,6 +12620,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -12806,6 +12926,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -13109,6 +13232,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -13412,6 +13538,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -13715,6 +13844,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -13997,6 +14129,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -14346,6 +14481,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -14610,6 +14748,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -14872,6 +15013,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -15134,6 +15278,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -15396,6 +15543,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -15658,6 +15808,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -15920,6 +16073,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -16182,6 +16338,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -16444,6 +16603,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -16726,6 +16888,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -27324,6 +27489,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -27694,6 +27862,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -28571,6 +28742,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -28941,6 +29115,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -29831,6 +30008,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -30216,6 +30396,9 @@ export const snapshots = { retries: 9, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', diff --git a/packages/app/cypress/e2e/runner/runner.mochaEvents.snapshots.ts b/packages/app/cypress/e2e/runner/runner.mochaEvents.snapshots.ts index f0b877ee36c4..de4237fab5b9 100644 --- a/packages/app/cypress/e2e/runner/runner.mochaEvents.snapshots.ts +++ b/packages/app/cypress/e2e/runner/runner.mochaEvents.snapshots.ts @@ -510,6 +510,9 @@ export const snapshots = { retries: 0, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -871,6 +874,9 @@ export const snapshots = { retries: 0, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -1197,6 +1203,9 @@ export const snapshots = { retries: 0, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -3360,6 +3369,9 @@ export const snapshots = { retries: 0, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', @@ -3740,6 +3752,9 @@ export const snapshots = { retries: 0, _slow: 10000, }, + { + nextTestHasTestIsolationOn: true, + }, ], [ 'mocha', diff --git a/packages/driver/cypress/e2e/commands/sessions/sessions.cy.js b/packages/driver/cypress/e2e/commands/sessions/sessions.cy.js index ce6d6581c1cd..e9a6cd07c977 100644 --- a/packages/driver/cypress/e2e/commands/sessions/sessions.cy.js +++ b/packages/driver/cypress/e2e/commands/sessions/sessions.cy.js @@ -68,6 +68,20 @@ describe('cy.session', { retries: 0 }, () => { .should('eq', 'about:blank') }) + it('clears page before the end of each run when nextTestHasTestIsolationOn is undefined', () => { + cy.visit('/fixtures/form.html') + .then(async () => { + cy.spy(Cypress, 'action').log(false) + + await Cypress.action('runner:test:before:after:run:async', {}, Cypress.state('runnable'), { nextTestHasTestIsolationOn: undefined }) + + expect(Cypress.action).to.be.calledWith('cy:url:changed', '') + expect(Cypress.action).to.be.calledWith('cy:visit:blank', { testIsolation: true }) + }) + .url() + .should('eq', 'about:blank') + }) + it('does not clear the page before the end of each run if the next test has test isolation off', () => { cy.visit('/fixtures/form.html') .then(async () => { diff --git a/packages/driver/src/cy/commands/sessions/index.ts b/packages/driver/src/cy/commands/sessions/index.ts index a484791ee57c..07f575a1dbef 100644 --- a/packages/driver/src/cy/commands/sessions/index.ts +++ b/packages/driver/src/cy/commands/sessions/index.ts @@ -33,7 +33,7 @@ export default function (Commands, Cypress, cy) { }) Cypress.on('test:before:after:run:async', (test, Cypress, { nextTestHasTestIsolationOn }: {nextTestHasTestIsolationOn?: boolean} = {}) => { - if (nextTestHasTestIsolationOn) { + if (nextTestHasTestIsolationOn || nextTestHasTestIsolationOn === undefined) { return navigateAboutBlank({ inBetweenTestsAndNextTestHasTestIsolationOn: true }) } diff --git a/packages/driver/src/cypress.ts b/packages/driver/src/cypress.ts index 279b8b9ebb14..c45b9462a4ff 100644 --- a/packages/driver/src/cypress.ts +++ b/packages/driver/src/cypress.ts @@ -571,7 +571,7 @@ class $Cypress { return this.emitThen('test:before:run:async', ...args) case 'runner:test:before:after:run:async': - this.maybeEmitCypressInCypress('mocha', 'test:before:after:run:async', args[0]) + this.maybeEmitCypressInCypress('mocha', 'test:before:after:run:async', args[0], args[2]) return this.emitThen('test:before:after:run:async', ...args) diff --git a/packages/driver/src/cypress/runner.ts b/packages/driver/src/cypress/runner.ts index 4cc15bd3bddb..aa26ca18f9a4 100644 --- a/packages/driver/src/cypress/runner.ts +++ b/packages/driver/src/cypress/runner.ts @@ -365,7 +365,7 @@ const isLastSuite = (suite, tests) => { // if we're the last test in the tests array or // if we failed from a hook and that hook was 'before' // since then mocha skips the remaining tests in the suite -const lastTestThatWillRunInSuite = (test, tests) => { +const lastTestThatWillRunInSuite = (test, tests): boolean => { return isLastTest(test, tests) || (test.failedFromHookId && (test.hookName === 'before all')) } @@ -522,14 +522,20 @@ const overrideRunnerHook = (Cypress, _runner, getTestById, getTest, setTest, get const isRunMode = !Cypress.config('isInteractive') const isHeadedNoExit = Cypress.config('browser').isHeaded && !Cypress.config('exit') const shouldAlwaysResetPage = isRunMode && !isHeadedNoExit + const isLastTestThatWillRunInSuite = lastTestThatWillRunInSuite(test, getAllSiblingTests(topSuite, getTestById)) // If we're not in open mode or we're in open mode and not the last test we reset state. // The last test will needs to stay so that the user can see what the end result of the AUT was. - if (shouldAlwaysResetPage || !lastTestThatWillRunInSuite(test, getAllSiblingTests(topSuite, getTestById))) { - const nextTest = nextTestThatWillRunInSuite(test, getAllSiblingTests(topSuite, getTestById)) - const nextTestIsolationOverride = nextTest?._testConfig.unverifiedTestConfig.testIsolation - const topLevelTestIsolation = Cypress.originalConfig['testIsolation'] - const nextTestHasTestIsolationOn = nextTestIsolationOverride || (nextTestIsolationOverride === undefined && topLevelTestIsolation) + if (shouldAlwaysResetPage || !isLastTestThatWillRunInSuite) { + let nextTestHasTestIsolationOn + + if (!isLastTestThatWillRunInSuite) { + const nextTest = nextTestThatWillRunInSuite(test, getAllSiblingTests(topSuite, getTestById)) + const nextTestIsolationOverride = nextTest?._testConfig.unverifiedTestConfig.testIsolation + const topLevelTestIsolation = Cypress.originalConfig['testIsolation'] + + nextTestHasTestIsolationOn = nextTestIsolationOverride || (nextTestIsolationOverride === undefined && topLevelTestIsolation) + } cy.state('duringUserTestExecution', false) Cypress.primaryOriginCommunicator.toAllSpecBridges('sync:state', { 'duringUserTestExecution': false }) diff --git a/system-tests/__snapshots__/protocol_spec.js b/system-tests/__snapshots__/protocol_spec.js index 98c23b7d17ac..2e9ad628f700 100644 --- a/system-tests/__snapshots__/protocol_spec.js +++ b/system-tests/__snapshots__/protocol_spec.js @@ -681,9 +681,7 @@ exports['e2e events'] = ` "retries": 0, "_slow": 10000 }, - "options": { - "nextTestHasTestIsolationOn": true - } + "options": {} }, { "test": { @@ -1385,9 +1383,7 @@ exports['e2e events'] = ` "retries": 0, "_slow": 10000 }, - "options": { - "nextTestHasTestIsolationOn": true - } + "options": {} } ], "afterTest": [ @@ -5273,9 +5269,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "retries": 0, "_slow": 250 }, - "options": { - "nextTestHasTestIsolationOn": true - } + "options": {} }, { "test": { @@ -5373,9 +5367,7 @@ exports['component events - experimentalSingleTabRunMode: true'] = ` "retries": 0, "_slow": 250 }, - "options": { - "nextTestHasTestIsolationOn": true - } + "options": {} } ], "afterTest": [ @@ -7016,9 +7008,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "retries": 0, "_slow": 250 }, - "options": { - "nextTestHasTestIsolationOn": true - } + "options": {} }, { "test": { @@ -7116,9 +7106,7 @@ exports['component events - experimentalSingleTabRunMode: false'] = ` "retries": 0, "_slow": 250 }, - "options": { - "nextTestHasTestIsolationOn": true - } + "options": {} } ], "afterTest": [ From 6620eb30875082cac65a184cec2b6b087d307795 Mon Sep 17 00:00:00 2001 From: Emily Rohrbough Date: Fri, 3 Nov 2023 09:10:27 -0500 Subject: [PATCH 41/47] chore: use shallow checkout (expect for windows) (#28230) --- .circleci/workflows.yml | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/.circleci/workflows.yml b/.circleci/workflows.yml index 3a09a5b7aa1a..125f5c1743b5 100644 --- a/.circleci/workflows.yml +++ b/.circleci/workflows.yml @@ -31,7 +31,7 @@ mainBuildFilters: &mainBuildFilters # use the following branch as well to ensure that v8 snapshot cache updates are fully tested - 'feature/experimental-retries' - 'publish-binary' - - 'ryanm/fix/better-sqlite3' + - 'em/shallow-checkout' # usually we don't build Mac app - it takes a long time # but sometimes we want to really confirm we are doing the right thing @@ -45,7 +45,6 @@ macWorkflowFilters: &darwin-workflow-filters - equal: [ 'feature/experimental-retries', << pipeline.git.branch >> ] - equal: [ 'chore/update_webpack_deps_to_latest_webpack4_compat', << pipeline.git.branch >> ] - equal: [ 'lerna-optimize-tasks', << pipeline.git.branch >> ] - - equal: [ 'ryanm/fix/better-sqlite3', << pipeline.git.branch >> ] - matches: pattern: /^release\/\d+\.\d+\.\d+$/ value: << pipeline.git.branch >> @@ -60,7 +59,6 @@ linuxArm64WorkflowFilters: &linux-arm64-workflow-filters - equal: [ 'chore/update_webpack_deps_to_latest_webpack4_compat', << pipeline.git.branch >> ] - equal: [ 'chore/bump_loaders_and_optimize_webpack', << pipeline.git.branch >> ] - equal: [ 'lerna-optimize-tasks', << pipeline.git.branch >> ] - - equal: [ 'ryanm/fix/better-sqlite3', << pipeline.git.branch >> ] - matches: pattern: /^release\/\d+\.\d+\.\d+$/ value: << pipeline.git.branch >> @@ -86,8 +84,7 @@ windowsWorkflowFilters: &windows-workflow-filters - equal: [ 'feature/experimental-retries', << pipeline.git.branch >> ] - equal: [ 'chore/update_webpack_deps_to_latest_webpack4_compat', << pipeline.git.branch >> ] - equal: [ 'lerna-optimize-tasks', << pipeline.git.branch >> ] - - equal: [ 'ryanm/fix/better-sqlite3', << pipeline.git.branch >> ] - - equal: [ 'mschile/test-before-after-run-async', << pipeline.git.branch >> ] + - equal: [ 'em/shallow-checkout', << pipeline.git.branch >> ] - matches: pattern: /^release\/\d+\.\d+\.\d+$/ value: << pipeline.git.branch >> @@ -157,7 +154,7 @@ commands: name: Set environment variable to determine whether or not to persist artifacts command: | echo "Setting SHOULD_PERSIST_ARTIFACTS variable" - echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "publish-binary" && "$CIRCLE_BRANCH" != "lerna-optimize-tasks" && "$CIRCLE_BRANCH" != "feature/experimental-retries" ]]; then + echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "publish-binary" && "$CIRCLE_BRANCH" != "lerna-optimize-tasks" ]]; then export SHOULD_PERSIST_ARTIFACTS=true fi' >> "$BASH_ENV" # You must run `setup_should_persist_artifacts` command and be using bash before running this command @@ -254,8 +251,6 @@ commands: root: ~/ paths: - cypress - - .ssh - - node_modules # contains the npm i -g modules install_cache_helpers_dependencies: steps: @@ -485,12 +480,9 @@ commands: # https://discuss.circleci.com/t/switch-nodejs-version-on-machine-executor-solved/26675/2 description: Install Node version matching .node-version steps: - # installing NVM will use git+ssh, so update known_hosts - - update_known_hosts - run: name: Install Node command: | - node_version=$(cat .node-version) source ./scripts/ensure-node.sh echo "Installing Yarn" npm install yarn --location=global # ensure yarn is installed with the correct node engine @@ -1349,7 +1341,19 @@ jobs: default: false resource_class: << parameters.resource_class >> steps: - - checkout + - update_known_hosts + - when: + condition: + equal: [ *windows-executor, << parameters.executor >> ] + steps: # issue with ssh keys on windows + - checkout + - unless: + condition: + equal: [ *windows-executor, << parameters.executor >> ] + steps: + - run: + name: checkout + command: git clone -b "$CIRCLE_BRANCH" "$CIRCLE_REPOSITORY_URL" . --depth 1 - install-required-node - verify-build-setup: executor: << parameters.executor >> @@ -1357,6 +1361,7 @@ jobs: root: ~/ paths: - cypress + - .ssh - .nvm # mac / linux - ProgramData/nvm # windows - caching-dependency-installer: @@ -2227,13 +2232,6 @@ jobs: - clone-repo-and-checkout-branch: repo: cypress-example-kitchensink - install-required-node - - run: - name: Remove cypress.json - description: Remove cypress.json in case it exists - working_directory: /tmp/cypress-example-kitchensink - environment: - CYPRESS_INTERNAL_FORCE_SCAFFOLD: "1" - command: rm -rf cypress.json - run: name: Install prod dependencies command: yarn --production --ignore-engines From 8c4a1067cb8662e65dcade2cca3d3d863b3b00d0 Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Fri, 3 Nov 2023 11:28:49 -0500 Subject: [PATCH 42/47] fix: issue with 'other' targets not fully loading (#28229) --- cli/CHANGELOG.md | 1 + .../server/lib/browsers/browser-cri-client.ts | 3 +- packages/server/lib/browsers/cri-client.ts | 3 +- .../e2e/cypress/e2e/other_target.cy.js | 7 ++++ system-tests/projects/e2e/other-target.pdf | Bin 0 -> 13264 bytes system-tests/projects/e2e/other-target.webm | Bin 0 -> 554058 bytes system-tests/projects/e2e/other_target.html | 22 ++++++++++++ system-tests/test/other_target_spec.js | 32 ++++++++++++++++++ 8 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 system-tests/projects/e2e/cypress/e2e/other_target.cy.js create mode 100644 system-tests/projects/e2e/other-target.pdf create mode 100644 system-tests/projects/e2e/other-target.webm create mode 100644 system-tests/projects/e2e/other_target.html create mode 100644 system-tests/test/other_target_spec.js diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index db8114eaff5d..13c9059ea30b 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -6,6 +6,7 @@ _Released 11/7/2023 (PENDING)_ **Bugfixes:** - Fixed an issue determining visibility when an element is hidden by an ancestor with a shared edge. Fixes [#27514](https://github.com/cypress-io/cypress/issues/27514). +- Fixed an issue with 'other' targets (e.g. pdf documents embedded in an object tag) not fully loading. Fixes [#28228](https://github.com/cypress-io/cypress/issues/28228) - Fixed an issue where network requests made from tabs/windows other than the main Cypress tab would be delayed. Fixes [#28113](https://github.com/cypress-io/cypress/issues/28113). - Stopped processing CDP events at the end of a spec when Test Isolation is off and Test Replay is enabled. Addressed in [#28213](https://github.com/cypress-io/cypress/pull/28213). diff --git a/packages/server/lib/browsers/browser-cri-client.ts b/packages/server/lib/browsers/browser-cri-client.ts index 9cc859921179..c7f0964231ca 100644 --- a/packages/server/lib/browsers/browser-cri-client.ts +++ b/packages/server/lib/browsers/browser-cri-client.ts @@ -277,7 +277,8 @@ export class BrowserCriClient { try { // The basic approach here is we attach to targets and enable network traffic // We must attach in a paused state so that we can enable network traffic before the target starts running. - if (targetInfo.type !== 'page') { + // We don't track child tabs/page network traffic. 'other' targets can't have network enabled + if (event.targetInfo.type !== 'page' && event.targetInfo.type !== 'other') { await browserClient.send('Network.enable', protocolManager?.networkEnableOptions ?? DEFAULT_NETWORK_ENABLE_OPTIONS, event.sessionId) } } catch (error) { diff --git a/packages/server/lib/browsers/cri-client.ts b/packages/server/lib/browsers/cri-client.ts index 0c61a887433d..97325b755cac 100644 --- a/packages/server/lib/browsers/cri-client.ts +++ b/packages/server/lib/browsers/cri-client.ts @@ -287,7 +287,8 @@ export const create = async ({ cri.on('Target.attachedToTarget', async (event) => { try { // Service workers get attached at the page and browser level. We only want to handle them at the browser level - if (event.targetInfo.type !== 'service_worker' && event.targetInfo.type !== 'page') { + // We don't track child tabs/page network traffic. 'other' targets can't have network enabled + if (event.targetInfo.type !== 'service_worker' && event.targetInfo.type !== 'page' && event.targetInfo.type !== 'other') { await cri.send('Network.enable', protocolManager?.networkEnableOptions ?? DEFAULT_NETWORK_ENABLE_OPTIONS, event.sessionId) } diff --git a/system-tests/projects/e2e/cypress/e2e/other_target.cy.js b/system-tests/projects/e2e/cypress/e2e/other_target.cy.js new file mode 100644 index 000000000000..3061a58e1019 --- /dev/null +++ b/system-tests/projects/e2e/cypress/e2e/other_target.cy.js @@ -0,0 +1,7 @@ +// The goal of this test is to load a page containing a target type of 'other' (e.g. embedded pdfs) +// This is to ensure that we don't hang on the cy.visit (https://github.com/cypress-io/cypress/issues/28228) +context('Test', () => { + it('visit site with unsupported content', () => { + cy.visit('http://localhost:1515/other_target.html') + }) +}) diff --git a/system-tests/projects/e2e/other-target.pdf b/system-tests/projects/e2e/other-target.pdf new file mode 100644 index 0000000000000000000000000000000000000000..774c2ea70c55104973794121eae56bcad918da97 GIT binary patch literal 13264 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 literal 0 HcmV?d00001 diff --git a/system-tests/projects/e2e/other-target.webm b/system-tests/projects/e2e/other-target.webm new file mode 100644 index 0000000000000000000000000000000000000000..5b8edf7d8384c057dfb13627073288cebfb54d74 GIT binary patch literal 554058 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
NFwS9FI^&+lqvMFlfhro& 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%0D)rU)bi$RKs7YgrGg`ZM5NLhRWgSrIElQ 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

#f8GhCO^2L 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 literal 0 HcmV?d00001 diff --git a/system-tests/projects/e2e/other_target.html b/system-tests/projects/e2e/other_target.html new file mode 100644 index 000000000000..fadb83ba6399 --- /dev/null +++ b/system-tests/projects/e2e/other_target.html @@ -0,0 +1,22 @@ + + + + mask-unsupported-content + + + +

Video Player

+ + + + + +

Objects

+ + + + diff --git a/system-tests/test/other_target_spec.js b/system-tests/test/other_target_spec.js new file mode 100644 index 000000000000..fd3e93b893f7 --- /dev/null +++ b/system-tests/test/other_target_spec.js @@ -0,0 +1,32 @@ +const express = require('express') +const Fixtures = require('../lib/fixtures') +const systemTests = require('../lib/system-tests').default + +const e2ePath = Fixtures.projectPath('e2e') + +const onServer = function (app) { + app.use(express.static(e2ePath, { + // force caching to happen + maxAge: 3600000, + })) +} + +describe('e2e other target', () => { + systemTests.setup({ + servers: [{ + port: 1515, + onServer, + }, { + https: true, + port: 1516, + onServer, + }], + }) + + // The goal of this test is to load a page containing a target type of 'other' (e.g. embedded pdfs) + // This is to ensure that we don't hang on the cy.visit (https://github.com/cypress-io/cypress/issues/28228) + systemTests.it(`executes a page containing a target type of 'other'`, { + project: 'e2e', + spec: 'other_target.cy.js', + }) +}) From 5dbebe6e5e7fca3af9716bfa8b80830b87641cf4 Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Fri, 3 Nov 2023 14:39:56 -0500 Subject: [PATCH 43/47] fix: ensure that chromium based browsers do not send out a lot of font requests when global styles change (#28217) --- cli/CHANGELOG.md | 3 +- .../cypress/e2e/commands/actions/click.cy.js | 4 - .../driver/cypress/e2e/dom/visibility.cy.ts | 25 +---- packages/driver/src/cy/actionability.ts | 44 ++------ .../src/dom/elements/complexElements.ts | 6 - .../driver/src/dom/elements/nativeProps.ts | 5 - packages/server/lib/browsers/chrome.ts | 3 + packages/server/lib/cypress.js | 9 +- packages/server/lib/util/electron-app.js | 13 +++ system-tests/__snapshots__/protocol_spec.js | 44 -------- .../protocolStubFontFlooding.ts | 103 ++++++++++++++++++ .../protocol-stubs/protocolStubResponse.ts | 2 + .../protocol/cypress/e2e/font-flooding.cy.js | 11 ++ .../cypress/fixtures/font-flooding.css | 63 +++++++++++ .../cypress/fixtures/font-flooding.html | 18 +++ system-tests/test/font_flooding_spec.js | 51 +++++++++ system-tests/test/protocol_spec.js | 1 + 17 files changed, 286 insertions(+), 119 deletions(-) create mode 100644 system-tests/lib/protocol-stubs/protocolStubFontFlooding.ts create mode 100644 system-tests/projects/protocol/cypress/e2e/font-flooding.cy.js create mode 100644 system-tests/projects/protocol/cypress/fixtures/font-flooding.css create mode 100644 system-tests/projects/protocol/cypress/fixtures/font-flooding.html create mode 100644 system-tests/test/font_flooding_spec.js diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 13c9059ea30b..db56f06d106b 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -6,7 +6,8 @@ _Released 11/7/2023 (PENDING)_ **Bugfixes:** - Fixed an issue determining visibility when an element is hidden by an ancestor with a shared edge. Fixes [#27514](https://github.com/cypress-io/cypress/issues/27514). -- Fixed an issue with 'other' targets (e.g. pdf documents embedded in an object tag) not fully loading. Fixes [#28228](https://github.com/cypress-io/cypress/issues/28228) +- Fixed an issue where in chromium based browsers, global style updates can trigger flooding of font face requests in DevTools and Test Replay. This can affect performance due to the flooding of messages in CDP. Fixes [#28150](https://github.com/cypress-io/cypress/issues/28150) and [#28215](https://github.com/cypress-io/cypress/issues/28215). +- Fixed an issue with 'other' targets (e.g. pdf documents embedded in an object tag) not fully loading. Fixes [#28228](https://github.com/cypress-io/cypress/issues/28228) and [#28162](https://github.com/cypress-io/cypress/issues/28162). - Fixed an issue where network requests made from tabs/windows other than the main Cypress tab would be delayed. Fixes [#28113](https://github.com/cypress-io/cypress/issues/28113). - Stopped processing CDP events at the end of a spec when Test Isolation is off and Test Replay is enabled. Addressed in [#28213](https://github.com/cypress-io/cypress/pull/28213). diff --git a/packages/driver/cypress/e2e/commands/actions/click.cy.js b/packages/driver/cypress/e2e/commands/actions/click.cy.js index de682862ce0e..97fe26a7b6a0 100644 --- a/packages/driver/cypress/e2e/commands/actions/click.cy.js +++ b/packages/driver/cypress/e2e/commands/actions/click.cy.js @@ -1678,16 +1678,12 @@ describe('src/cy/commands/actions/click', () => { it('can scroll to and click elements in html with scroll-behavior: smooth', () => { cy.get('html').invoke('css', 'scrollBehavior', 'smooth') cy.get('#table tr:first').click() - // Validate that the scrollBehavior is still smooth even after the actionability fixes we do - cy.get('html').invoke('css', 'scrollBehavior').then((scrollBehavior) => expect(scrollBehavior).to.eq('smooth')) }) // https://github.com/cypress-io/cypress/issues/3200 it('can scroll to and click elements in ancestor element with scroll-behavior: smooth', () => { cy.get('#dom').invoke('css', 'scrollBehavior', 'smooth') cy.get('#table tr:first').click() - // Validate that the scrollBehavior is still smooth even after the actionability fixes we do - cy.get('#dom').invoke('css', 'scrollBehavior').then((scrollBehavior) => expect(scrollBehavior).to.eq('smooth')) }) }) }) diff --git a/packages/driver/cypress/e2e/dom/visibility.cy.ts b/packages/driver/cypress/e2e/dom/visibility.cy.ts index 5dc7495afc30..eed827b883b1 100644 --- a/packages/driver/cypress/e2e/dom/visibility.cy.ts +++ b/packages/driver/cypress/e2e/dom/visibility.cy.ts @@ -53,7 +53,7 @@ describe('src/cypress/dom/visibility', () => { expect(fn()).to.be.true }) - it('returns false if window and body < window height', () => { + it('returns false window and body > window height', () => { cy.$$('body').html('
foo
') const win = cy.state('window') @@ -65,29 +65,6 @@ describe('src/cypress/dom/visibility', () => { expect(fn()).to.be.false }) - it('returns true if document element and body > window height', function () { - this.add('
') - const documentElement = Cypress.dom.wrap(cy.state('document').documentElement) - - const fn = () => { - return dom.isScrollable(documentElement) - } - - expect(fn()).to.be.true - }) - - it('returns false if document element and body < window height', () => { - cy.$$('body').html('
foo
') - - const documentElement = Cypress.dom.wrap(cy.state('document').documentElement) - - const fn = () => { - return dom.isScrollable(documentElement) - } - - expect(fn()).to.be.false - }) - it('returns false el is not scrollable', function () { const noScroll = this.add(`\
diff --git a/packages/driver/src/cy/actionability.ts b/packages/driver/src/cy/actionability.ts index d40ffb29ddb7..8cdea1e51cbe 100644 --- a/packages/driver/src/cy/actionability.ts +++ b/packages/driver/src/cy/actionability.ts @@ -8,7 +8,6 @@ import $utils from './../cypress/utils' import type { ElWindowPostion, ElViewportPostion, ElementPositioning } from '../dom/coordinates' import $elements from '../dom/elements' import $errUtils from '../cypress/error_utils' -import { callNativeMethod, getNativeProp } from '../dom/elements/nativeProps' const debug = debugFn('cypress:driver:actionability') const delay = 50 @@ -461,46 +460,24 @@ const verify = function (cy, $el, config, options, callbacks: VerifyCallbacks) { // make scrolling occur instantly. we do this by adding a style tag // and then removing it after we finish scrolling // https://github.com/cypress-io/cypress/issues/3200 - const addScrollBehaviorFix = (element: JQuery) => { - const affectedParents: Map = new Map() + const addScrollBehaviorFix = () => { + let style try { - let parent: JQuery | null = element + const doc = $el.get(0).ownerDocument - do { - if ($dom.isScrollable(parent)) { - const parentElement = parent[0] - const style = getNativeProp(parentElement, 'style') - const styles = getComputedStyle(parentElement) - - if (styles.scrollBehavior === 'smooth') { - affectedParents.set(parentElement, callNativeMethod(style, 'getStyleProperty', 'scroll-behavior')) - callNativeMethod(style, 'setStyleProperty', 'scroll-behavior', 'auto') - } - } - - parent = $dom.getFirstScrollableParent(parent) - } while (parent) + style = doc.createElement('style') + style.innerHTML = '* { scroll-behavior: inherit !important; }' + // there's guaranteed to be a + + diff --git a/system-tests/test/font_flooding_spec.js b/system-tests/test/font_flooding_spec.js new file mode 100644 index 000000000000..7fe55848d08e --- /dev/null +++ b/system-tests/test/font_flooding_spec.js @@ -0,0 +1,51 @@ +const fs = require('fs-extra') +const path = require('path') +const systemTests = require('../lib/system-tests').default +const Fixtures = require('../lib/fixtures') +const { + createRoutes, + setupStubbedServer, + enableCaptureProtocol, +} = require('../lib/serverStub') +const { PROTOCOL_STUB_FONT_FLOODING } = require('../lib/protocol-stubs/protocolStubResponse') + +const getFilePath = (filename) => { + return path.join( + Fixtures.projectPath('protocol'), + 'cypress', + 'system-tests-protocol-dbs', + `${filename}.json`, + ) +} + +const BROWSERS = ['chrome', 'electron'] + +describe('capture-protocol', () => { + setupStubbedServer(createRoutes()) + enableCaptureProtocol(PROTOCOL_STUB_FONT_FLOODING) + + describe('font flooding', () => { + BROWSERS.forEach((browser) => { + it(`verifies the number of font requests is correct - ${browser}`, function () { + return systemTests.exec(this, { + key: 'f858a2bc-b469-4e48-be67-0876339ee7e1', + project: 'protocol', + spec: 'font-flooding.cy.js', + record: true, + expectedExitCode: 0, + port: 2121, + browser, + config: { + hosts: { + '*foobar.com': '127.0.0.1', + }, + }, + }).then(() => { + const protocolEvents = fs.readFileSync(getFilePath('e9e81b5e-cc58-4026-b2ff-8ae3161435a6.db'), 'utf8') + + expect(JSON.parse(protocolEvents).numberOfFontRequests).to.equal(2) + }) + }) + }) + }) +}) diff --git a/system-tests/test/protocol_spec.js b/system-tests/test/protocol_spec.js index 8ac73046544a..7f868174cdd6 100644 --- a/system-tests/test/protocol_spec.js +++ b/system-tests/test/protocol_spec.js @@ -43,6 +43,7 @@ describe('capture-protocol', () => { record: true, expectedExitCode: 0, port: 2121, + spec: 'protocol.cy.js,test-isolation.cy.js', config: { hosts: { '*foobar.com': '127.0.0.1', From db8609e54f7802bdb785406d9bd85b75a5c23e84 Mon Sep 17 00:00:00 2001 From: Jennifer Shehane Date: Mon, 6 Nov 2023 12:56:11 -0500 Subject: [PATCH 44/47] fix: Pass flag to chrome to disable translation prompt when running tests (#28227) --- cli/CHANGELOG.md | 1 + packages/server/lib/browsers/chrome.ts | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index db56f06d106b..5272767f891e 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -6,6 +6,7 @@ _Released 11/7/2023 (PENDING)_ **Bugfixes:** - Fixed an issue determining visibility when an element is hidden by an ancestor with a shared edge. Fixes [#27514](https://github.com/cypress-io/cypress/issues/27514). +- We now pass a flag to Chromium browsers to disable Chrome translation, both the manual option and the popup prompt, when a page with a differing language is detected. Fixes [#28225](https://github.com/cypress-io/cypress/issues/28225). - Fixed an issue where in chromium based browsers, global style updates can trigger flooding of font face requests in DevTools and Test Replay. This can affect performance due to the flooding of messages in CDP. Fixes [#28150](https://github.com/cypress-io/cypress/issues/28150) and [#28215](https://github.com/cypress-io/cypress/issues/28215). - Fixed an issue with 'other' targets (e.g. pdf documents embedded in an object tag) not fully loading. Fixes [#28228](https://github.com/cypress-io/cypress/issues/28228) and [#28162](https://github.com/cypress-io/cypress/issues/28162). - Fixed an issue where network requests made from tabs/windows other than the main Cypress tab would be delayed. Fixes [#28113](https://github.com/cypress-io/cypress/issues/28113). diff --git a/packages/server/lib/browsers/chrome.ts b/packages/server/lib/browsers/chrome.ts index 53ac8a5b4c95..a4764bdac5ba 100644 --- a/packages/server/lib/browsers/chrome.ts +++ b/packages/server/lib/browsers/chrome.ts @@ -103,6 +103,10 @@ const DEFAULT_ARGS = [ `--simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'`, '--disable-default-apps', + // Disable manual option and popup prompt of Chrome translation + // https://github.com/cypress-io/cypress/issues/28225 + '--disable-features=Translate', + // These flags are for webcam/WebRTC testing // https://github.com/cypress-io/cypress/issues/2704 '--use-fake-ui-for-media-stream', From eab1730dbb055efa2ad02bc2ae36f5a9ac5ef8d9 Mon Sep 17 00:00:00 2001 From: Emily Rohrbough Date: Mon, 6 Nov 2023 14:06:59 -0600 Subject: [PATCH 45/47] fix: handle download from element missing download attribute (#28222) --- cli/CHANGELOG.md | 2 + packages/app/src/runner/event-manager.ts | 3 ++ .../cypress/e2e/cypress/downloads.cy.ts | 52 ++++++++++++++++++- .../driver/cypress/fixtures/downloads.html | 15 ++++++ .../cypress/fixtures/downloads_records.csv | 2 + packages/driver/src/cy/commands/navigation.ts | 18 +++++++ packages/driver/src/cypress.ts | 3 ++ packages/driver/src/cypress/downloads.ts | 10 +++- packages/extension/app/v2/background.js | 16 ++++-- .../test/integration/background_spec.js | 17 ++++++ packages/server/lib/automation/automation.ts | 1 + packages/server/lib/browsers/chrome.ts | 17 +++--- packages/server/lib/browsers/electron.ts | 12 +++-- .../server/test/unit/browsers/chrome_spec.js | 15 ++++++ .../test/unit/browsers/electron_spec.js | 23 +++++++- 15 files changed, 188 insertions(+), 18 deletions(-) create mode 100644 packages/driver/cypress/fixtures/downloads.html create mode 100644 packages/driver/cypress/fixtures/downloads_records.csv diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 5272767f891e..1d2b998a51ca 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -5,6 +5,8 @@ _Released 11/7/2023 (PENDING)_ **Bugfixes:** +- Fixed an issue where clicking a link to download a file could cause a page load timeout when the download attribute was missing. Note: download behaviors in experimental Webkit are still an issue. Fixes [#14857](https://github.com/cypress-io/cypress/issues/14857). +- Fixed an issue to account for canceled and failed downloads to correctly reflect these status in Command log as a download failure where previously it would be pending. Fixed in [#28222](https://github.com/cypress-io/cypress/pull/28222). - Fixed an issue determining visibility when an element is hidden by an ancestor with a shared edge. Fixes [#27514](https://github.com/cypress-io/cypress/issues/27514). - We now pass a flag to Chromium browsers to disable Chrome translation, both the manual option and the popup prompt, when a page with a differing language is detected. Fixes [#28225](https://github.com/cypress-io/cypress/issues/28225). - Fixed an issue where in chromium based browsers, global style updates can trigger flooding of font face requests in DevTools and Test Replay. This can affect performance due to the flooding of messages in CDP. Fixes [#28150](https://github.com/cypress-io/cypress/issues/28150) and [#28215](https://github.com/cypress-io/cypress/issues/28215). diff --git a/packages/app/src/runner/event-manager.ts b/packages/app/src/runner/event-manager.ts index eb02090ad72f..13dca2e60f5a 100644 --- a/packages/app/src/runner/event-manager.ts +++ b/packages/app/src/runner/event-manager.ts @@ -148,6 +148,9 @@ export class EventManager { case 'complete:download': Cypress.downloads.end(data) break + case 'canceled:download': + Cypress.downloads.end(data, true) + break default: break } diff --git a/packages/driver/cypress/e2e/cypress/downloads.cy.ts b/packages/driver/cypress/e2e/cypress/downloads.cy.ts index 46e915836a88..078d5199cade 100644 --- a/packages/driver/cypress/e2e/cypress/downloads.cy.ts +++ b/packages/driver/cypress/e2e/cypress/downloads.cy.ts @@ -4,6 +4,7 @@ describe('src/cypress/downloads', () => { let log let snapshot let end + let error let downloads let downloadItem = { id: '1', @@ -11,13 +12,16 @@ describe('src/cypress/downloads', () => { url: 'http://localhost:1234/location.csv', mime: 'text/csv', } + let action beforeEach(() => { end = cy.stub() - snapshot = cy.stub().returns({ end }) + error = cy.stub() + snapshot = cy.stub().returns({ end, error }) log = cy.stub().returns({ snapshot }) + action = cy.stub() - downloads = $Downloads.create({ log }) + downloads = $Downloads.create({ action, log }) }) context('#start', () => { @@ -51,9 +55,21 @@ describe('src/cypress/downloads', () => { downloads.start(downloadItem) downloads.end({ id: '1' }) + expect(action).to.be.calledWith('app:download:received') + expect(snapshot).to.be.called expect(end).to.be.called }) + it('fails with snapshot if matching log exists', () => { + downloads.start(downloadItem) + downloads.end({ id: '1' }, true) + + expect(action).to.be.calledWith('app:download:received') + expect(snapshot).to.be.called + expect(end).not.to.be.called + expect(error).to.be.called + }) + it('is a noop if matching log does not exist', () => { downloads.end({ id: '1' }) @@ -62,3 +78,35 @@ describe('src/cypress/downloads', () => { }) }) }) + +describe('download behavior', () => { + beforeEach(() => { + cy.visit('/fixtures/downloads.html') + }) + + it('downloads from anchor tag with download attribute', () => { + cy.exec(`rm -f ${Cypress.config('downloadsFolder')}/downloads_records.csv`) + cy.readFile(`${Cypress.config('downloadsFolder')}/downloads_records.csv`).should('not.exist') + + // trigger download + cy.get('[data-cy=download-csv]').click() + cy.readFile(`${Cypress.config('downloadsFolder')}/downloads_records.csv`) + .should('contain', '"Joe","Smith"') + }) + + it('downloads from anchor tag without download attribute', { browser: '!webkit' }, () => { + cy.exec(`rm -f ${Cypress.config('downloadsFolder')}/downloads_records.csv`) + cy.readFile(`${Cypress.config('downloadsFolder')}/downloads_records.csv`).should('not.exist') + + // trigger download + cy.get('[data-cy=download-without-download-attr]').click() + cy.readFile(`${Cypress.config('downloadsFolder')}/downloads_records.csv`) + .should('contain', '"Joe","Smith"') + }) + + it('invalid download path from anchor tag with download attribute', () => { + // attempt to download + cy.get('[data-cy=invalid-download]').click() + cy.readFile(`${Cypress.config('downloadsFolder')}/downloads_does_not_exist.csv`).should('not.exist') + }) +}) diff --git a/packages/driver/cypress/fixtures/downloads.html b/packages/driver/cypress/fixtures/downloads.html new file mode 100644 index 000000000000..b5042407e355 --- /dev/null +++ b/packages/driver/cypress/fixtures/downloads.html @@ -0,0 +1,15 @@ + + + + + +

Download CSV

+
downloads_records.csv + +

Download CSV

+ download csv from anchor tag without download attr + +

Download CSV

+ broken download link + + diff --git a/packages/driver/cypress/fixtures/downloads_records.csv b/packages/driver/cypress/fixtures/downloads_records.csv new file mode 100644 index 000000000000..54b734d103e6 --- /dev/null +++ b/packages/driver/cypress/fixtures/downloads_records.csv @@ -0,0 +1,2 @@ +"First name","Last name","Occupation","Age","City","State" +"Joe","Smith","student",20,"Boston","MA" \ No newline at end of file diff --git a/packages/driver/src/cy/commands/navigation.ts b/packages/driver/src/cy/commands/navigation.ts index 73e0c66f2daf..1d3ec096832c 100644 --- a/packages/driver/src/cy/commands/navigation.ts +++ b/packages/driver/src/cy/commands/navigation.ts @@ -302,6 +302,23 @@ const stabilityChanged = async (Cypress, state, config, stable) => { debug('waiting for window:load') const promise = new Promise((resolve) => { + const handleDownloadUnloadEvent = () => { + cy.state('onPageLoadErr', null) + cy.isStable(true, 'download') + + options._log + .set({ + message: 'download fired beforeUnload event', + consoleProps () { + return { + Note: 'This event fired when the download was initiated.', + } + }, + }).snapshot().end() + + resolve() + } + const onWindowLoad = ({ url }) => { const href = state('autLocation').href const count = getRedirectionCount(href) @@ -351,6 +368,7 @@ const stabilityChanged = async (Cypress, state, config, stable) => { } } + cy.once('download:received', handleDownloadUnloadEvent) cy.once('internal:window:load', onInternalWindowLoad) // If this request is still pending after the test run, resolve it, no commands were waiting on its result. diff --git a/packages/driver/src/cypress.ts b/packages/driver/src/cypress.ts index c45b9462a4ff..34d5351e93de 100644 --- a/packages/driver/src/cypress.ts +++ b/packages/driver/src/cypress.ts @@ -712,6 +712,9 @@ class $Cypress { case 'app:navigation:changed': return this.emit('navigation:changed', ...args) + case 'app:download:received': + return this.emit('download:received') + case 'app:form:submitted': return this.emit('form:submitted', args[0]) diff --git a/packages/driver/src/cypress/downloads.ts b/packages/driver/src/cypress/downloads.ts index d33c353cee8b..25436855890c 100644 --- a/packages/driver/src/cypress/downloads.ts +++ b/packages/driver/src/cypress/downloads.ts @@ -25,11 +25,17 @@ export default { return log.snapshot() } - const end = ({ id }) => { + const end = ({ id }, isCanceled = false) => { + Cypress.action('app:download:received') + const log = logs[id] if (log) { - log.snapshot().end() + if (isCanceled) { + log.snapshot().error(new Error('Download was canceled.')) + } else { + log.snapshot().end() + } // don't need this anymore since the download has ended // and won't change anymore diff --git a/packages/extension/app/v2/background.js b/packages/extension/app/v2/background.js index e70d5729f6e5..6fe74d24dcf0 100644 --- a/packages/extension/app/v2/background.js +++ b/packages/extension/app/v2/background.js @@ -51,11 +51,19 @@ const connect = function (host, path, extraOpts) { }) browser.downloads.onChanged.addListener((downloadDelta) => { - if ((downloadDelta.state || {}).current !== 'complete') return + const state = (downloadDelta.state || {}).current - ws.emit('automation:push:request', 'complete:download', { - id: `${downloadDelta.id}`, - }) + if (state === 'complete') { + ws.emit('automation:push:request', 'complete:download', { + id: `${downloadDelta.id}`, + }) + } + + if (state === 'canceled') { + ws.emit('automation:push:request', 'canceled:download', { + id: `${downloadDelta.id}`, + }) + } }) }) diff --git a/packages/extension/test/integration/background_spec.js b/packages/extension/test/integration/background_spec.js index b0d4617a275b..1dd316c89198 100644 --- a/packages/extension/test/integration/background_spec.js +++ b/packages/extension/test/integration/background_spec.js @@ -231,6 +231,23 @@ describe('app/background', () => { }) }) + it('onChanged emits automation:push:request canceled:download', async function () { + const downloadDelta = { + id: '1', + state: { + current: 'canceled', + }, + } + + sinon.stub(browser.downloads.onChanged, 'addListener').yields(downloadDelta) + + const ws = await this.connect() + + expect(ws.emit).to.be.calledWith('automation:push:request', 'canceled:download', { + id: `${downloadDelta.id}`, + }) + }) + it('onChanged does not emit if state does not exist', async function () { const downloadDelta = { id: '1', diff --git a/packages/server/lib/automation/automation.ts b/packages/server/lib/automation/automation.ts index 53d4bbf0f94f..22b2abfaa15f 100644 --- a/packages/server/lib/automation/automation.ts +++ b/packages/server/lib/automation/automation.ts @@ -127,6 +127,7 @@ export class Automation { case 'change:cookie': return this.cookies.changeCookie(data) case 'create:download': + case 'canceled:download': case 'complete:download': return data default: diff --git a/packages/server/lib/browsers/chrome.ts b/packages/server/lib/browsers/chrome.ts index a4764bdac5ba..8ff81eab95cd 100644 --- a/packages/server/lib/browsers/chrome.ts +++ b/packages/server/lib/browsers/chrome.ts @@ -302,11 +302,17 @@ const _handleDownloads = async function (client, downloadsFolder: string, automa }) client.on('Page.downloadProgress', (data) => { - if (data.state !== 'completed') return + if (data.state === 'completed') { + automation.push('complete:download', { + id: data.guid, + }) + } - automation.push('complete:download', { - id: data.guid, - }) + if (data.state === 'canceled') { + automation.push('canceled:download', { + id: data.guid, + }) + } }) await client.send('Page.setDownloadBehavior', { @@ -528,13 +534,12 @@ export = { await pageCriClient.send('Page.enable') - await utils.handleDownloadLinksViaCDP(pageCriClient, automation) - await options['onInitializeNewBrowserTab']?.() await Promise.all([ options.videoApi && this._recordVideo(cdpAutomation, options.videoApi, Number(options.browser.majorVersion)), this._handleDownloads(pageCriClient, options.downloadsFolder, automation), + utils.handleDownloadLinksViaCDP(pageCriClient, automation), ]) await this._navigateUsingCRI(pageCriClient, url) diff --git a/packages/server/lib/browsers/electron.ts b/packages/server/lib/browsers/electron.ts index 52a7b1e33c73..fd4f819b4c8c 100644 --- a/packages/server/lib/browsers/electron.ts +++ b/packages/server/lib/browsers/electron.ts @@ -337,7 +337,7 @@ export = { }, _handleDownloads (win, dir, automation) { - const onWillDownload = (event, downloadItem) => { + const onWillDownload = (_event, downloadItem) => { const savePath = path.join(dir, downloadItem.getFilename()) automation.push('create:download', { @@ -347,8 +347,14 @@ export = { url: downloadItem.getURL(), }) - downloadItem.once('done', () => { - automation.push('complete:download', { + downloadItem.once('done', (_event, state) => { + if (state === 'completed') { + return automation.push('complete:download', { + id: downloadItem.getETag(), + }) + } + + automation.push('canceled:download', { id: downloadItem.getETag(), }) }) diff --git a/packages/server/test/unit/browsers/chrome_spec.js b/packages/server/test/unit/browsers/chrome_spec.js index 987afc4c8313..20dc11dfe6d7 100644 --- a/packages/server/test/unit/browsers/chrome_spec.js +++ b/packages/server/test/unit/browsers/chrome_spec.js @@ -338,6 +338,21 @@ describe('lib/browsers/chrome', () => { }) }) }) + + it('pushes canceled:download when download is incomplete', function () { + const downloadData = { + guid: '1', + state: 'canceled', + } + const options = { downloadsFolder: 'downloads' } + + return this.onCriEvent('Page.downloadProgress', downloadData, options) + .then(() => { + expect(this.automation.push).to.be.calledWith('canceled:download', { + id: '1', + }) + }) + }) }) describe('adding header to AUT iframe request', function () { diff --git a/packages/server/test/unit/browsers/electron_spec.js b/packages/server/test/unit/browsers/electron_spec.js index 1fe7fc2d5c76..ecb0101d2f16 100644 --- a/packages/server/test/unit/browsers/electron_spec.js +++ b/packages/server/test/unit/browsers/electron_spec.js @@ -322,7 +322,7 @@ describe('lib/browsers/electron', () => { getFilename: () => 'file.csv', getMimeType: () => 'text/csv', getURL: () => 'http://localhost:1234/file.csv', - once: sinon.stub().yields(), + once: sinon.stub().yields({}, 'completed'), } this.win.webContents.session.on.withArgs('will-download').yields({}, downloadItem) @@ -337,6 +337,27 @@ describe('lib/browsers/electron', () => { }) }) + it('pushes canceled:download when download is incomplete', function () { + const downloadItem = { + getETag: () => '1', + getFilename: () => 'file.csv', + getMimeType: () => 'text/csv', + getURL: () => 'http://localhost:1234/file.csv', + once: sinon.stub().yields({}, 'canceled'), + } + + this.win.webContents.session.on.withArgs('will-download').yields({}, downloadItem) + this.options.downloadsFolder = 'downloads' + sinon.stub(this.automation, 'push') + + return electron._launch(this.win, this.url, this.automation, this.options, undefined, undefined, { attachCDPClient: sinon.stub() }) + .then(() => { + expect(this.automation.push).to.be.calledWith('canceled:download', { + id: '1', + }) + }) + }) + it('sets download behavior', function () { this.options.downloadsFolder = 'downloads' From 934f2157b31bde08c0f76195ad2d93c0dc5bdf22 Mon Sep 17 00:00:00 2001 From: Chris Breiding Date: Mon, 6 Nov 2023 17:32:39 -0500 Subject: [PATCH 46/47] chore: add after:browser:launch node event (#28180) --- cli/types/cypress.d.ts | 9 ++- .../server/lib/browsers/browser-cri-client.ts | 7 ++ packages/server/lib/browsers/chrome.ts | 4 + packages/server/lib/browsers/cri-client.ts | 23 ++++-- packages/server/lib/browsers/electron.ts | 4 + packages/server/lib/browsers/firefox.ts | 8 +- packages/server/lib/browsers/utils.ts | 24 ++++++ packages/server/lib/browsers/webkit.ts | 7 +- .../lib/plugins/child/browser_launch.js | 2 +- .../server/lib/plugins/child/run_plugins.js | 4 +- .../lib/plugins/child/validate_event.js | 7 +- .../server/test/integration/cypress_spec.js | 2 + .../server/test/unit/browsers/chrome_spec.js | 31 +++++++- .../test/unit/browsers/electron_spec.js | 34 ++++++++- .../server/test/unit/browsers/firefox_spec.ts | 55 +++++++++++--- .../server/test/unit/browsers/webkit_spec.ts | 73 ++++++++++++++++++- .../unit/plugins/child/run_plugins_spec.js | 34 ++++++++- .../unit/plugins/child/validate_event_spec.js | 1 + packages/server/test/unit/util/args_spec.js | 68 ++++++++--------- 19 files changed, 326 insertions(+), 71 deletions(-) diff --git a/cli/types/cypress.d.ts b/cli/types/cypress.d.ts index cf0604f27902..f4c69ec165cf 100644 --- a/cli/types/cypress.d.ts +++ b/cli/types/cypress.d.ts @@ -6009,7 +6009,11 @@ declare namespace Cypress { (fn: (currentSubject: Subject) => void): Chainable } - interface BrowserLaunchOptions { + interface AfterBrowserLaunchDetails { + webSocketDebuggerUrl: string + } + + interface BeforeBrowserLaunchOptions { extensions: string[] preferences: { [key: string]: any } args: string[] @@ -6090,12 +6094,13 @@ declare namespace Cypress { } interface PluginEvents { + (action: 'after:browser:launch', fn: (browser: Browser, browserLaunchDetails: AfterBrowserLaunchDetails) => void | Promise): void (action: 'after:run', fn: (results: CypressCommandLine.CypressRunResult | CypressCommandLine.CypressFailedRunResult) => void | Promise): void (action: 'after:screenshot', fn: (details: ScreenshotDetails) => void | AfterScreenshotReturnObject | Promise): void (action: 'after:spec', fn: (spec: Spec, results: CypressCommandLine.RunResult) => void | Promise): void (action: 'before:run', fn: (runDetails: BeforeRunDetails) => void | Promise): void (action: 'before:spec', fn: (spec: Spec) => void | Promise): void - (action: 'before:browser:launch', fn: (browser: Browser, browserLaunchOptions: BrowserLaunchOptions) => void | BrowserLaunchOptions | Promise): void + (action: 'before:browser:launch', fn: (browser: Browser, afterBrowserLaunchOptions: BeforeBrowserLaunchOptions) => void | Promise | BeforeBrowserLaunchOptions | Promise): void (action: 'file:preprocessor', fn: (file: FileObject) => string | Promise): void (action: 'dev-server:start', fn: (file: DevServerConfig) => Promise): void (action: 'task', tasks: Tasks): void diff --git a/packages/server/lib/browsers/browser-cri-client.ts b/packages/server/lib/browsers/browser-cri-client.ts index c7f0964231ca..8d11b913afed 100644 --- a/packages/server/lib/browsers/browser-cri-client.ts +++ b/packages/server/lib/browsers/browser-cri-client.ts @@ -574,6 +574,13 @@ export class BrowserCriClient { this.extraTargetClients.delete(targetId) } + /** + * @returns the websocket debugger URL for the currently connected browser + */ + getWebSocketDebuggerUrl () { + return this.versionInfo.webSocketDebuggerUrl + } + /** * Closes the browser client socket as well as the socket for the currently attached page target */ diff --git a/packages/server/lib/browsers/chrome.ts b/packages/server/lib/browsers/chrome.ts index 8ff81eab95cd..62026997c306 100644 --- a/packages/server/lib/browsers/chrome.ts +++ b/packages/server/lib/browsers/chrome.ts @@ -645,6 +645,10 @@ export = { await this.attachListeners(url, pageCriClient, automation, options, browser) + await utils.executeAfterBrowserLaunch(browser, { + webSocketDebuggerUrl: browserCriClient.getWebSocketDebuggerUrl(), + }) + // return the launched browser process // with additional method to close the remote connection return launchedBrowser diff --git a/packages/server/lib/browsers/cri-client.ts b/packages/server/lib/browsers/cri-client.ts index 97325b755cac..a578592a4a53 100644 --- a/packages/server/lib/browsers/cri-client.ts +++ b/packages/server/lib/browsers/cri-client.ts @@ -265,15 +265,26 @@ export const create = async ({ maybeDebugCdpMessages(cri) - // Only reconnect when we're not running cypress in cypress. There are a lot of disconnects that happen that we don't want to reconnect on - if (!process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF) { + // Having a host set indicates that this is the child cri target, a.k.a. + // the main Cypress tab (as opposed to the root browser cri target) + const isChildTarget = !!host + + // don't reconnect in these circumstances + if ( + // is a child target. we only need to reconnect the root browser target + !isChildTarget + // running cypress in cypress - there are a lot of disconnects that happen + // that we don't want to reconnect on + && !process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF + ) { cri.on('disconnect', retryReconnect) } - // We only want to try and add child target traffic if we have a host set. This indicates that this is the child cri client. - // Browser cri traffic is handled in browser-cri-client.ts. The basic approach here is we attach to targets and enable network traffic - // We must attach in a paused state so that we can enable network traffic before the target starts running. - if (host) { + // We're only interested in child target traffic. Browser cri traffic is + // handled in browser-cri-client.ts. The basic approach here is we attach + // to targets and enable network traffic. We must attach in a paused state + // so that we can enable network traffic before the target starts running. + if (isChildTarget) { cri.on('Target.targetCrashed', async (event) => { if (event.targetId !== target) { return diff --git a/packages/server/lib/browsers/electron.ts b/packages/server/lib/browsers/electron.ts index fd4f819b4c8c..fb9ebf451564 100644 --- a/packages/server/lib/browsers/electron.ts +++ b/packages/server/lib/browsers/electron.ts @@ -539,6 +539,10 @@ export = { }, }) as BrowserInstance + await utils.executeAfterBrowserLaunch(browser, { + webSocketDebuggerUrl: browserCriClient!.getWebSocketDebuggerUrl(), + }) + return instance }, } diff --git a/packages/server/lib/browsers/firefox.ts b/packages/server/lib/browsers/firefox.ts index 4fbbc2c9297d..e7ae8e63ecd7 100644 --- a/packages/server/lib/browsers/firefox.ts +++ b/packages/server/lib/browsers/firefox.ts @@ -347,7 +347,7 @@ toolbar { ` -let browserCriClient +let browserCriClient: BrowserCriClient | undefined export function _createDetachedInstance (browserInstance: BrowserInstance, browserCriClient?: BrowserCriClient): BrowserInstance { const detachedInstance: BrowserInstance = new EventEmitter() as BrowserInstance @@ -382,7 +382,7 @@ export function clearInstanceState (options: GracefulShutdownOptions = {}) { } export async function connectToNewSpec (browser: Browser, options: BrowserNewTabOpts, automation: Automation) { - await firefoxUtil.connectToNewSpec(options, automation, browserCriClient) + await firefoxUtil.connectToNewSpec(options, automation, browserCriClient!) } export function connectToExisting () { @@ -573,6 +573,10 @@ export async function open (browser: Browser, url: string, options: BrowserLaunc return originalBrowserKill.apply(browserInstance, args) } + + await utils.executeAfterBrowserLaunch(browser, { + webSocketDebuggerUrl: browserCriClient.getWebSocketDebuggerUrl(), + }) } catch (err) { errors.throwErr('FIREFOX_COULD_NOT_CONNECT', err) } diff --git a/packages/server/lib/browsers/utils.ts b/packages/server/lib/browsers/utils.ts index b6f246b28ff9..deed00e225cc 100644 --- a/packages/server/lib/browsers/utils.ts +++ b/packages/server/lib/browsers/utils.ts @@ -7,6 +7,7 @@ import * as plugins from '../plugins' import { getError } from '@packages/errors' import * as launcher from '@packages/launcher' import type { Automation } from '../automation' +import type { Browser } from './types' import type { CriClient } from './cri-client' declare global { @@ -157,6 +158,27 @@ async function executeBeforeBrowserLaunch (browser, launchOptions: typeof defaul return launchOptions } +interface AfterBrowserLaunchDetails { + webSocketDebuggerUrl: string | never +} + +async function executeAfterBrowserLaunch (browser: Browser, options: AfterBrowserLaunchDetails) { + if (plugins.has('after:browser:launch')) { + const span = telemetry.startSpan({ name: 'lifecycle:after:browser:launch' }) + + span?.setAttribute({ + name: browser.name, + channel: browser.channel, + version: browser.version, + isHeadless: browser.isHeadless, + }) + + await plugins.execute('after:browser:launch', browser, options) + + span?.end() + } +} + function extendLaunchOptionsFromPlugins (launchOptions, pluginConfigResult, options: BrowserLaunchOpts) { // if we returned an array from the plugin // then we know the user is using the deprecated @@ -423,6 +445,8 @@ export = { extendLaunchOptionsFromPlugins, + executeAfterBrowserLaunch, + executeBeforeBrowserLaunch, defaultLaunchOptions, diff --git a/packages/server/lib/browsers/webkit.ts b/packages/server/lib/browsers/webkit.ts index a02540daba39..26955261f4e5 100644 --- a/packages/server/lib/browsers/webkit.ts +++ b/packages/server/lib/browsers/webkit.ts @@ -101,7 +101,8 @@ export async function open (browser: Browser, url: string, options: BrowserLaunc removeBadExitListener() - const pwBrowser = await pw.webkit.connect(pwServer.wsEndpoint()) + const websocketUrl = pwServer.wsEndpoint() + const pwBrowser = await pw.webkit.connect(websocketUrl) wkAutomation = await WebKitAutomation.create({ automation, @@ -147,5 +148,9 @@ export async function open (browser: Browser, url: string, options: BrowserLaunc } } + await utils.executeAfterBrowserLaunch(browser, { + webSocketDebuggerUrl: websocketUrl, + }) + return new WkInstance() } diff --git a/packages/server/lib/plugins/child/browser_launch.js b/packages/server/lib/plugins/child/browser_launch.js index c5680961e3d8..54b777d384e3 100644 --- a/packages/server/lib/plugins/child/browser_launch.js +++ b/packages/server/lib/plugins/child/browser_launch.js @@ -3,7 +3,7 @@ const util = require('../util') const ARRAY_METHODS = ['concat', 'push', 'unshift', 'slice', 'pop', 'shift', 'slice', 'splice', 'filter', 'map', 'forEach', 'reduce', 'reverse', 'splice', 'includes'] module.exports = { - wrap (ipc, invoke, ids, args) { + wrapBefore (ipc, invoke, ids, args) { // TODO: remove in next breaking release // This will send a warning message when a deprecated API is used // define array-like functions on this object so we can warn about using deprecated array API diff --git a/packages/server/lib/plugins/child/run_plugins.js b/packages/server/lib/plugins/child/run_plugins.js index f86a35d5cdf9..0e439519860b 100644 --- a/packages/server/lib/plugins/child/run_plugins.js +++ b/packages/server/lib/plugins/child/run_plugins.js @@ -169,7 +169,9 @@ class RunPlugins { case '_get:task:body': return this.taskGetBody(ids, args) case 'before:browser:launch': - return browserLaunch.wrap(this.ipc, this.invoke, ids, args) + return browserLaunch.wrapBefore(this.ipc, this.invoke, ids, args) + case 'after:browser:launch': + return util.wrapChildPromise(this.ipc, this.invoke, ids, args) default: debug('unexpected execute message:', event, args) diff --git a/packages/server/lib/plugins/child/validate_event.js b/packages/server/lib/plugins/child/validate_event.js index 0a82f902d7d8..2c8832682552 100644 --- a/packages/server/lib/plugins/child/validate_event.js +++ b/packages/server/lib/plugins/child/validate_event.js @@ -27,6 +27,7 @@ const eventValidators = { '_get:task:body': isFunction, '_get:task:keys': isFunction, '_process:cross:origin:callback': isFunction, + 'after:browser:launch': isFunction, 'after:run': isFunction, 'after:screenshot': isFunction, 'after:spec': isFunction, @@ -42,7 +43,11 @@ const validateEvent = (event, handler, config, errConstructorFn) => { const validator = eventValidators[event] if (!validator) { - const userEvents = _.reject(_.keys(eventValidators), (event) => event.startsWith('_')) + const userEvents = _.reject(_.keys(eventValidators), (event) => { + // we're currently not documenting after:browser:launch, so it shouldn't + // appear in the list of valid events + return event.startsWith('_') || event === 'after:browser:launch' + }) const error = new Error(`invalid event name registered: ${event}`) diff --git a/packages/server/test/integration/cypress_spec.js b/packages/server/test/integration/cypress_spec.js index ca48af7aae03..f7957c35a0cf 100644 --- a/packages/server/test/integration/cypress_spec.js +++ b/packages/server/test/integration/cypress_spec.js @@ -1006,6 +1006,7 @@ describe('lib/cypress', () => { ensureMinimumProtocolVersion: sinon.stub().resolves(), attachToTargetUrl: sinon.stub().resolves(criClient), close: sinon.stub().resolves(), + getWebSocketDebuggerUrl: sinon.stub().returns('ws://debugger'), } const cdpAutomation = { @@ -1076,6 +1077,7 @@ describe('lib/cypress', () => { attachToTargetUrl: sinon.stub().resolves(criClient), currentlyAttachedTarget: criClient, close: sinon.stub().resolves(), + getWebSocketDebuggerUrl: sinon.stub().returns('ws://debugger'), } sinon.stub(BrowserCriClient, 'create').resolves(browserCriClient) diff --git a/packages/server/test/unit/browsers/chrome_spec.js b/packages/server/test/unit/browsers/chrome_spec.js index 20dc11dfe6d7..5f8f5286c436 100644 --- a/packages/server/test/unit/browsers/chrome_spec.js +++ b/packages/server/test/unit/browsers/chrome_spec.js @@ -33,6 +33,7 @@ describe('lib/browsers/chrome', () => { attachToTargetUrl: sinon.stub().resolves(this.pageCriClient), close: sinon.stub().resolves(), ensureMinimumProtocolVersion: sinon.stub().withArgs('1.3').resolves(), + getWebSocketDebuggerUrl: sinon.stub().returns('ws://debugger'), } this.automation = { @@ -93,14 +94,14 @@ describe('lib/browsers/chrome', () => { }) }) - it('is noop without before:browser:launch', function () { + it('executeBeforeBrowserLaunch is noop if before:browser:launch is not registered', function () { return chrome.open({ isHeadless: true }, 'http://', openOpts, this.automation) .then(() => { - expect(plugins.execute).not.to.be.called + expect(plugins.execute).not.to.be.calledWith('before:browser:launch') }) }) - it('is noop if newArgs are not returned', function () { + it('uses default args if new args are not returned from before:browser:launch', function () { const args = [] sinon.stub(chrome, '_getArgs').returns(args) @@ -304,6 +305,30 @@ describe('lib/browsers/chrome', () => { return expect(chrome.open({ isHeadless: true }, 'http://', openOpts, this.automation)).to.be.rejectedWith('Cypress requires at least Chrome 64.') }) + it('sends after:browser:launch with debugger url', function () { + const args = [] + const browser = { isHeadless: true } + + sinon.stub(chrome, '_getArgs').returns(args) + sinon.stub(plugins, 'has').returns(true) + + plugins.execute.resolves(null) + + return chrome.open(browser, 'http://', openOpts, this.automation) + .then(() => { + expect(plugins.execute).to.be.calledWith('after:browser:launch', browser, { + webSocketDebuggerUrl: 'ws://debugger', + }) + }) + }) + + it('executeAfterBrowserLaunch is noop if after:browser:launch is not registered', function () { + return chrome.open({ isHeadless: true }, 'http://', openOpts, this.automation) + .then(() => { + expect(plugins.execute).not.to.be.calledWith('after:browser:launch') + }) + }) + describe('downloads', function () { it('pushes create:download after download begins', function () { const downloadData = { diff --git a/packages/server/test/unit/browsers/electron_spec.js b/packages/server/test/unit/browsers/electron_spec.js index ecb0101d2f16..194e1414e076 100644 --- a/packages/server/test/unit/browsers/electron_spec.js +++ b/packages/server/test/unit/browsers/electron_spec.js @@ -80,6 +80,7 @@ describe('lib/browsers/electron', () => { attachToTargetUrl: sinon.stub().resolves(this.pageCriClient), currentlyAttachedTarget: this.pageCriClient, close: sinon.stub().resolves(), + getWebSocketDebuggerUrl: sinon.stub().returns('ws://debugger'), } sinon.stub(BrowserCriClient, 'create').resolves(this.browserCriClient) @@ -111,8 +112,11 @@ describe('lib/browsers/electron', () => { }) context('.open', () => { - beforeEach(function () { - return this.stubForOpen() + beforeEach(async function () { + // shortcut to set the browserCriClient singleton variable + await electron._getAutomation({}, { onError: () => {} }, {}) + + await this.stubForOpen() }) it('calls render with url, state, and options', function () { @@ -152,7 +156,7 @@ describe('lib/browsers/electron', () => { }) }) - it('is noop when before:browser:launch yields null', function () { + it('executeBeforeBrowserLaunch is noop when before:browser:launch yields null', function () { plugins.has.returns(true) plugins.execute.resolves(null) @@ -207,6 +211,25 @@ describe('lib/browsers/electron', () => { expect(Windows.removeAllExtensions).to.be.calledTwice }) }) + + it('sends after:browser:launch with debugger url', function () { + plugins.has.returns(true) + plugins.execute.resolves(null) + + return electron.open('electron', this.url, this.options, this.automation) + .then(() => { + expect(plugins.execute).to.be.calledWith('after:browser:launch', 'electron', { + webSocketDebuggerUrl: 'ws://debugger', + }) + }) + }) + + it('executeAfterBrowserLaunch is noop if after:browser:launch is not registered', function () { + return electron.open('electron', this.url, this.options, this.automation) + .then(() => { + expect(plugins.execute).not.to.be.calledWith('after:browser:launch') + }) + }) }) context('.connectProtocolToBrowser', () => { @@ -821,7 +844,10 @@ describe('lib/browsers/electron', () => { expect(electron._launchChild).to.be.calledWith(this.url, parentWindow, this.options.projectRoot, this.state, this.options, this.automation) }) - it('adds pid of new BrowserWindow to allPids list', function () { + it('adds pid of new BrowserWindow to allPids list', async function () { + // shortcut to set the browserCriClient singleton variable + await electron._getAutomation({}, { onError: () => {} }, {}) + const opts = electron._defaultOptions(this.options.projectRoot, this.state, this.options) const NEW_WINDOW_PID = ELECTRON_PID * 2 diff --git a/packages/server/test/unit/browsers/firefox_spec.ts b/packages/server/test/unit/browsers/firefox_spec.ts index b0ab02ffacd3..6827d10f0fca 100644 --- a/packages/server/test/unit/browsers/firefox_spec.ts +++ b/packages/server/test/unit/browsers/firefox_spec.ts @@ -126,7 +126,9 @@ describe('lib/browsers/firefox', () => { context('#open', () => { beforeEach(function () { - this.browser = { name: 'firefox', channel: 'stable' } + // majorVersion >= 86 indicates CDP support for Firefox, which provides + // the CDP debugger URL for the after:browser:launch tests + this.browser = { name: 'firefox', channel: 'stable', majorVersion: 100 } this.automation = { use: sinon.stub().returns({}), } @@ -150,31 +152,40 @@ describe('lib/browsers/firefox', () => { sinon.stub(plugins, 'execute') sinon.stub(launch, 'launch').returns(this.browserInstance) sinon.stub(utils, 'writeExtension').resolves('/path/to/ext') + sinon.stub(utils, 'getPort').resolves(1234) sinon.spy(FirefoxProfile.prototype, 'setPreference') sinon.spy(FirefoxProfile.prototype, 'updatePreferences') + sinon.spy(FirefoxProfile.prototype, 'path') + + const browserCriClient: BrowserCriClient = sinon.createStubInstance(BrowserCriClient) - return sinon.spy(FirefoxProfile.prototype, 'path') + browserCriClient.attachToTargetUrl = sinon.stub().resolves({}) + browserCriClient.getWebSocketDebuggerUrl = sinon.stub().returns('ws://debugger') + browserCriClient.close = sinon.stub().resolves() + + sinon.stub(BrowserCriClient, 'create').resolves(browserCriClient) + sinon.stub(CdpAutomation, 'create').resolves() }) it('executes before:browser:launch if registered', function () { - plugins.has.returns(true) + plugins.has.withArgs('before:browser:launch').returns(true) plugins.execute.resolves(null) return firefox.open(this.browser, 'http://', this.options, this.automation).then(() => { - expect(plugins.execute).to.be.called + expect(plugins.execute).to.be.calledWith('before:browser:launch') }) }) it('does not execute before:browser:launch if not registered', function () { - plugins.has.returns(false) + plugins.has.withArgs('before:browser:launch').returns(false) return firefox.open(this.browser, 'http://', this.options, this.automation).then(() => { - expect(plugins.execute).not.to.be.called + expect(plugins.execute).not.to.be.calledWith('before:browser:launch') }) }) it('uses default preferences if before:browser:launch returns falsy value', function () { - plugins.has.returns(true) + plugins.has.withArgs('before:browser:launch').returns(true) plugins.execute.resolves(null) return firefox.open(this.browser, 'http://', this.options, this.automation).then(() => { @@ -183,7 +194,7 @@ describe('lib/browsers/firefox', () => { }) it('uses default preferences if before:browser:launch returns object with non-object preferences', function () { - plugins.has.returns(true) + plugins.has.withArgs('before:browser:launch').returns(true) plugins.execute.resolves({ preferences: [], }) @@ -194,7 +205,7 @@ describe('lib/browsers/firefox', () => { }) it('sets preferences if returned by before:browser:launch', function () { - plugins.has.returns(true) + plugins.has.withArgs('before:browser:launch').returns(true) plugins.execute.resolves({ preferences: { 'foo': 'bar' }, }) @@ -205,7 +216,7 @@ describe('lib/browsers/firefox', () => { }) it('adds extensions returned by before:browser:launch, along with cypress extension', function () { - plugins.has.returns(true) + plugins.has.withArgs('before:browser:launch').returns(true) plugins.execute.resolves({ extensions: ['/path/to/user/ext'], }) @@ -218,7 +229,7 @@ describe('lib/browsers/firefox', () => { }) it('adds only cypress extension if before:browser:launch returns object with non-array extensions', function () { - plugins.has.returns(true) + plugins.has.withArgs('before:browser:launch').returns(true) plugins.execute.resolves({ extensions: 'not-an-array', }) @@ -331,12 +342,13 @@ describe('lib/browsers/firefox', () => { it('launches with the url and args', function () { return firefox.open(this.browser, 'http://', this.options, this.automation).then(() => { - expect(launch.launch).to.be.calledWith(this.browser, 'about:blank', undefined, [ + expect(launch.launch).to.be.calledWith(this.browser, 'about:blank', 1234, [ '-marionette', '-new-instance', '-foreground', '-start-debugger-server', '-no-remote', + '--remote-debugging-port=1234', '-profile', '/path/to/appData/firefox-stable/interactive', ]) @@ -410,6 +422,25 @@ describe('lib/browsers/firefox', () => { }) }) + it('executes after:browser:launch if registered', function () { + plugins.has.withArgs('after:browser:launch').returns(true) + plugins.execute.resolves(null) + + return firefox.open(this.browser, 'http://', this.options, this.automation).then(() => { + expect(plugins.execute).to.be.calledWith('after:browser:launch', this.browser, { + webSocketDebuggerUrl: 'ws://debugger', + }) + }) + }) + + it('does not execute after:browser:launch if not registered', function () { + plugins.has.withArgs('after:browser:launch').returns(false) + + return firefox.open(this.browser, 'http://', this.options, this.automation).then(() => { + expect(plugins.execute).not.to.be.calledWith('after:browser:launch') + }) + }) + context('returns BrowserInstance', function () { it('from browsers.launch', async function () { const instance = await firefox.open(this.browser, 'http://', this.options, this.automation) diff --git a/packages/server/test/unit/browsers/webkit_spec.ts b/packages/server/test/unit/browsers/webkit_spec.ts index 9906936c98a8..708224b6ecd7 100644 --- a/packages/server/test/unit/browsers/webkit_spec.ts +++ b/packages/server/test/unit/browsers/webkit_spec.ts @@ -1,12 +1,79 @@ -require('../../spec_helper') - +import { proxyquire } from '../../spec_helper' import { expect } from 'chai' +import utils from '../../../lib/browsers/utils' +import * as plugins from '../../../lib/plugins' -import * as webkit from '../../../lib/browsers/webkit' +function getWebkit (dependencies = {}) { + return proxyquire('../lib/browsers/webkit', dependencies) as typeof import('../../../lib/browsers/webkit') +} describe('lib/browsers/webkit', () => { + context('#open', () => { + let browser + let options + let automation + let webkit + + beforeEach(async () => { + browser = {} + options = { experimentalWebKitSupport: true } + automation = { use: sinon.stub() } + + const launchOptions = { + extensions: [], + args: [], + preferences: { }, + } + const pwWebkit = { + webkit: { + connect: sinon.stub().resolves({ + on: sinon.stub(), + }), + launchServer: sinon.stub().resolves({ + wsEndpoint: sinon.stub().returns('ws://debugger'), + process: sinon.stub().returns({ pid: 'pid' }), + }), + }, + } + const wkAutomation = { + WebKitAutomation: { + create: sinon.stub().resolves({}), + }, + } + + sinon.stub(utils, 'executeBeforeBrowserLaunch').resolves(launchOptions as any) + sinon.stub(plugins, 'execute').resolves() + sinon.stub(plugins, 'has') + + webkit = getWebkit({ + 'playwright-webkit': pwWebkit, + './webkit-automation': wkAutomation, + }) + }) + + it('sends after:browser:launch with debugger url', async () => { + (plugins.has as any).returns(true) + + await webkit.open(browser as any, 'http://the.url', options as any, automation as any) + + expect(plugins.execute).to.be.calledWith('after:browser:launch', browser, { + webSocketDebuggerUrl: 'ws://debugger', + }) + }) + + it('executeAfterBrowserLaunch is noop if after:browser:launch is not registered', async () => { + (plugins.has as any).returns(false) + + await webkit.open(browser as any, 'http://the.url', options as any, automation as any) + + expect(plugins.execute).not.to.be.calledWith('after:browser:launch') + }) + }) + context('#connectProtocolToBrowser', () => { it('throws error', () => { + const webkit = getWebkit() + expect(webkit.connectProtocolToBrowser).to.throw('Protocol is not yet supported in WebKit.') }) }) diff --git a/packages/server/test/unit/plugins/child/run_plugins_spec.js b/packages/server/test/unit/plugins/child/run_plugins_spec.js index f87555f27c0f..7b89e2ec7fa6 100644 --- a/packages/server/test/unit/plugins/child/run_plugins_spec.js +++ b/packages/server/test/unit/plugins/child/run_plugins_spec.js @@ -141,6 +141,7 @@ describe('lib/plugins/child/run_plugins', () => { describe(`on 'execute:plugins' message`, () => { let onFilePreprocessor + let afterBrowserLaunch let beforeBrowserLaunch let taskRequested let setupNodeEventsFn @@ -149,11 +150,13 @@ describe('lib/plugins/child/run_plugins', () => { sinon.stub(preprocessor, 'wrap') onFilePreprocessor = sinon.stub().resolves() + afterBrowserLaunch = sinon.stub().resolves() beforeBrowserLaunch = sinon.stub().resolves() taskRequested = sinon.stub().resolves('foo') setupNodeEventsFn = (on) => { on('file:preprocessor', onFilePreprocessor) + on('after:browser:launch', afterBrowserLaunch) on('before:browser:launch', beforeBrowserLaunch) on('task', taskRequested) } @@ -201,6 +204,35 @@ describe('lib/plugins/child/run_plugins', () => { ipc.on.withArgs('execute:plugins').yield('before:browser:launch', ids, args) }) + it('wraps child promise', () => { + expect(util.wrapChildPromise).to.be.calledWith(ipc, sinon.match.func, ids, args) + }) + + it('invokes registered function when invoked by handler', () => { + // console.log(util.wrapChildPromise.withArgs(ipc, sinon.match.func, ids, args).args) + util.wrapChildPromise.withArgs(ipc, sinon.match.func, ids, args).args[0][1](5, args) + + expect(beforeBrowserLaunch).to.be.calledWith(...args) + }) + }) + + context('after:browser:launch', () => { + let args + const ids = { eventId: 2, invocationId: '00' } + + beforeEach(async () => { + sinon.stub(util, 'wrapChildPromise') + + await runPlugins.runSetupNodeEvents(config, setupNodeEventsFn) + + const browser = {} + const launchOptions = browserUtils.getDefaultLaunchOptions({}) + + args = [browser, launchOptions] + + ipc.on.withArgs('execute:plugins').yield('after:browser:launch', ids, args) + }) + it('wraps child promise', () => { expect(util.wrapChildPromise).to.be.called expect(util.wrapChildPromise.lastCall.args[0]).to.equal(ipc) @@ -212,7 +244,7 @@ describe('lib/plugins/child/run_plugins', () => { it('invokes registered function when invoked by handler', () => { util.wrapChildPromise.lastCall.args[1](4, args) - expect(beforeBrowserLaunch).to.be.calledWith(...args) + expect(afterBrowserLaunch).to.be.calledWith(...args) }) }) diff --git a/packages/server/test/unit/plugins/child/validate_event_spec.js b/packages/server/test/unit/plugins/child/validate_event_spec.js index dee6e85a0727..f024ee79cbbb 100644 --- a/packages/server/test/unit/plugins/child/validate_event_spec.js +++ b/packages/server/test/unit/plugins/child/validate_event_spec.js @@ -4,6 +4,7 @@ const _ = require('lodash') const validateEvent = require('../../../../lib/plugins/child/validate_event') const events = [ + ['after:browser:launch', 'a function', () => {}], ['after:run', 'a function', () => {}], ['after:screenshot', 'a function', () => {}], ['after:spec', 'a function', () => {}], diff --git a/packages/server/test/unit/util/args_spec.js b/packages/server/test/unit/util/args_spec.js index 05ddb06210ec..ff7e1ba4af00 100644 --- a/packages/server/test/unit/util/args_spec.js +++ b/packages/server/test/unit/util/args_spec.js @@ -8,7 +8,7 @@ const minimist = require('minimist') const argsUtil = require(`../../../lib/util/args`) const getWindowsProxyUtil = require(`../../../lib/util/get-windows-proxy`) -const cwd = process.cwd() +const getCwd = () => process.cwd() describe('lib/util/args', () => { beforeEach(function () { @@ -92,7 +92,7 @@ describe('lib/util/args', () => { context('--project', () => { it('sets projectRoot', function () { - const projectRoot = path.resolve(cwd, './foo/bar') + const projectRoot = path.resolve(getCwd(), './foo/bar') const options = this.setup('--project', './foo/bar') expect(options.projectRoot).to.eq(projectRoot) @@ -113,7 +113,7 @@ describe('lib/util/args', () => { context('--run-project', () => { it('sets projectRoot', function () { - const projectRoot = path.resolve(cwd, '/baz') + const projectRoot = path.resolve(getCwd(), '/baz') const options = this.setup('--run-project', '/baz') expect(options.projectRoot).to.eq(projectRoot) @@ -138,16 +138,16 @@ describe('lib/util/args', () => { it('converts to array', function () { const options = this.setup('--run-project', 'foo', '--spec', 'cypress/integration/a.js,cypress/integration/b.js,cypress/integration/c.js') - expect(options.spec[0]).to.eq(`${cwd}/cypress/integration/a.js`) - expect(options.spec[1]).to.eq(`${cwd}/cypress/integration/b.js`) + expect(options.spec[0]).to.eq(`${getCwd()}/cypress/integration/a.js`) + expect(options.spec[1]).to.eq(`${getCwd()}/cypress/integration/b.js`) - expect(options.spec[2]).to.eq(`${cwd}/cypress/integration/c.js`) + expect(options.spec[2]).to.eq(`${getCwd()}/cypress/integration/c.js`) }) it('discards wrapping single quotes', function () { const options = this.setup('--run-project', 'foo', '--spec', '\'cypress/integration/foo_spec.js\'') - expect(options.spec[0]).to.eq(`${cwd}/cypress/integration/foo_spec.js`) + expect(options.spec[0]).to.eq(`${getCwd()}/cypress/integration/foo_spec.js`) }) it('throws if argument cannot be parsed', function () { @@ -165,56 +165,56 @@ describe('lib/util/args', () => { it('should be correctly parsing globs with lists & ranges', function () { const options = this.setup('--spec', 'cypress/integration/{[!a]*.spec.js,sub1,{sub2,sub3/sub4}}/*.js') - expect(options.spec[0]).to.eq(`${cwd}/cypress/integration/{[!a]*.spec.js,sub1,{sub2,sub3/sub4}}/*.js`) + expect(options.spec[0]).to.eq(`${getCwd()}/cypress/integration/{[!a]*.spec.js,sub1,{sub2,sub3/sub4}}/*.js`) }) it('should be correctly parsing globs with a mix of lists, ranges & regular paths', function () { const options = this.setup('--spec', 'cypress/integration/{[!a]*.spec.js,sub1,{sub2,sub3/sub4}}/*.js,cypress/integration/foo.spec.js') - expect(options.spec[0]).to.eq(`${cwd}/cypress/integration/{[!a]*.spec.js,sub1,{sub2,sub3/sub4}}/*.js`) - expect(options.spec[1]).to.eq(`${cwd}/cypress/integration/foo.spec.js`) + expect(options.spec[0]).to.eq(`${getCwd()}/cypress/integration/{[!a]*.spec.js,sub1,{sub2,sub3/sub4}}/*.js`) + expect(options.spec[1]).to.eq(`${getCwd()}/cypress/integration/foo.spec.js`) }) it('should be correctly parsing single glob with range', function () { const options = this.setup('--spec', 'cypress/integration/[a-c]*/**') - expect(options.spec[0]).to.eq(`${cwd}/cypress/integration/[a-c]*/**`) + expect(options.spec[0]).to.eq(`${getCwd()}/cypress/integration/[a-c]*/**`) }) it('should be correctly parsing single glob with list', function () { const options = this.setup('--spec', 'cypress/integration/{a,b,c}/*.js') - expect(options.spec[0]).to.eq(`${cwd}/cypress/integration/{a,b,c}/*.js`) + expect(options.spec[0]).to.eq(`${getCwd()}/cypress/integration/{a,b,c}/*.js`) }) // https://github.com/cypress-io/cypress/issues/20794 it('does not split at filename with glob pattern', function () { const options = this.setup('--spec', 'cypress/integration/foo/bar/[baz]/test.ts,cypress/integration/foo1/bar/[baz]/test.ts,cypress/integration/foo2/bar/baz/test.ts,cypress/integration/foo3/bar/baz/foo4.ts') - expect(options.spec[0]).to.eq(`${cwd}/cypress/integration/foo/bar/[baz]/test.ts`) - expect(options.spec[1]).to.eq(`${cwd}/cypress/integration/foo1/bar/[baz]/test.ts`) - expect(options.spec[2]).to.eq(`${cwd}/cypress/integration/foo2/bar/baz/test.ts`) - expect(options.spec[3]).to.eq(`${cwd}/cypress/integration/foo3/bar/baz/foo4.ts`) + expect(options.spec[0]).to.eq(`${getCwd()}/cypress/integration/foo/bar/[baz]/test.ts`) + expect(options.spec[1]).to.eq(`${getCwd()}/cypress/integration/foo1/bar/[baz]/test.ts`) + expect(options.spec[2]).to.eq(`${getCwd()}/cypress/integration/foo2/bar/baz/test.ts`) + expect(options.spec[3]).to.eq(`${getCwd()}/cypress/integration/foo3/bar/baz/foo4.ts`) }) // https://github.com/cypress-io/cypress/issues/20794 it('correctly splits at comma with glob pattern', function () { const options = this.setup('--spec', 'cypress/integration/foo/bar/baz/test.ts,cypress/integration/foo1/bar/[baz]/test.ts,cypress/integration/foo2/bar/baz/test.ts,cypress/integration/foo3/bar/baz/foo4.ts') - expect(options.spec[0]).to.eq(`${cwd}/cypress/integration/foo/bar/baz/test.ts`) - expect(options.spec[1]).to.eq(`${cwd}/cypress/integration/foo1/bar/[baz]/test.ts`) - expect(options.spec[2]).to.eq(`${cwd}/cypress/integration/foo2/bar/baz/test.ts`) - expect(options.spec[3]).to.eq(`${cwd}/cypress/integration/foo3/bar/baz/foo4.ts`) + expect(options.spec[0]).to.eq(`${getCwd()}/cypress/integration/foo/bar/baz/test.ts`) + expect(options.spec[1]).to.eq(`${getCwd()}/cypress/integration/foo1/bar/[baz]/test.ts`) + expect(options.spec[2]).to.eq(`${getCwd()}/cypress/integration/foo2/bar/baz/test.ts`) + expect(options.spec[3]).to.eq(`${getCwd()}/cypress/integration/foo3/bar/baz/foo4.ts`) }) // https://github.com/cypress-io/cypress/issues/20794 it('correctly splits at comma with escaped glob pattern', function () { const options = this.setup('--spec', 'cypress/integration/foo/bar/\[baz\]/test.ts,cypress/integration/foo1/bar/\[baz1\]/test.ts,cypress/integration/foo2/bar/baz/test.ts,cypress/integration/foo3/bar/baz/foo4.ts') - expect(options.spec[0]).to.eq(`${cwd}/cypress/integration/foo/bar/\[baz\]/test.ts`) - expect(options.spec[1]).to.eq(`${cwd}/cypress/integration/foo1/bar/\[baz1\]/test.ts`) - expect(options.spec[2]).to.eq(`${cwd}/cypress/integration/foo2/bar/baz/test.ts`) - expect(options.spec[3]).to.eq(`${cwd}/cypress/integration/foo3/bar/baz/foo4.ts`) + expect(options.spec[0]).to.eq(`${getCwd()}/cypress/integration/foo/bar/\[baz\]/test.ts`) + expect(options.spec[1]).to.eq(`${getCwd()}/cypress/integration/foo1/bar/\[baz1\]/test.ts`) + expect(options.spec[2]).to.eq(`${getCwd()}/cypress/integration/foo2/bar/baz/test.ts`) + expect(options.spec[3]).to.eq(`${getCwd()}/cypress/integration/foo3/bar/baz/foo4.ts`) }) }) @@ -600,9 +600,9 @@ describe('lib/util/args', () => { this.hosts = { a: 'b', b: 'c' } this.blockHosts = ['a.com', 'b.com'] this.specs = [ - path.join(cwd, 'foo'), - path.join(cwd, 'bar'), - path.join(cwd, 'baz'), + path.join(getCwd(), 'foo'), + path.join(getCwd(), 'bar'), + path.join(getCwd(), 'baz'), ] this.env = { @@ -643,7 +643,7 @@ describe('lib/util/args', () => { it('backs up env, config, reporterOptions, spec', function () { expect(this.obj).to.deep.eq({ - cwd, + cwd: getCwd(), _: [], config: this.config, invokedFromCli: false, @@ -666,12 +666,12 @@ describe('lib/util/args', () => { expect(args).to.deep.eq([ `--config=${mergedConfig}`, - `--cwd=${cwd}`, + `--cwd=${getCwd()}`, `--spec=${JSON.stringify(this.specs)}`, ]) expect(argsUtil.toObject(args)).to.deep.eq({ - cwd, + cwd: getCwd(), _: [], invokedFromCli: true, config: this.config, @@ -684,7 +684,7 @@ describe('lib/util/args', () => { expect(result).to.deep.equal({ ciBuildId: '1e100', - cwd, + cwd: getCwd(), _: [], invokedFromCli: false, config: {}, @@ -695,7 +695,7 @@ describe('lib/util/args', () => { const result = argsUtil.toObject(['--config', '{"baseUrl": "http://foobar.com", "specPattern":"**/*.test.js"}']) expect(result).to.deep.equal({ - cwd, + cwd: getCwd(), _: [], invokedFromCli: false, config: { @@ -718,7 +718,7 @@ describe('lib/util/args', () => { ] expect(argsUtil.toObject(argv)).to.deep.eq({ - cwd, + cwd: getCwd(), _: [ '/private/var/folders/wr/3xdzqnq16lz5r1j_xtl443580000gn/T/cypress/Cypress.app/Contents/MacOS/Cypress', '/Applications/Cypress.app', @@ -743,7 +743,7 @@ describe('lib/util/args', () => { ] expect(argsUtil.toObject(argv)).to.deep.eq({ - cwd, + cwd: getCwd(), _: [ '/private/var/folders/wr/3xdzqnq16lz5r1j_xtl443580000gn/T/cypress/Cypress.app/Contents/MacOS/Cypress', '/Applications/Cypress.app1', From 9f19f9a513a7cec29b84da12e95f59a582e30e11 Mon Sep 17 00:00:00 2001 From: Matt Schile Date: Mon, 6 Nov 2023 16:54:21 -0700 Subject: [PATCH 47/47] test: update mochaEvent snapshots to be auto-generated (#28224) --- packages/app/cypress.config.ts | 3 + ...ries.experimentalRetries.mochaEvents.cy.ts | 27 +- ...perimentalRetries.mochaEvents.snapshots.ts | 54573 --------------- .../e2e/runner/retries.mochaEvents.cy.ts | 27 +- .../runner/retries.mochaEvents.snapshots.ts | 9393 --- ...nner.experimentalRetries.mochaEvents.cy.ts | 25 +- ...perimentalRetries.mochaEvents.snapshots.ts | 30920 --------- .../e2e/runner/runner.mochaEvents.cy.ts | 25 +- .../runner/runner.mochaEvents.snapshots.ts | 4276 -- ...experimentalRetries.mochaEvents.cy.ts.json | 54982 ++++++++++++++++ .../snapshots/retries.mochaEvents.cy.ts.json | 9385 +++ ...experimentalRetries.mochaEvents.cy.ts.json | 31292 +++++++++ .../snapshots/runner.mochaEvents.cy.ts.json | 4263 ++ .../e2e/runner/support/mochaEventsUtils.ts | 36 +- packages/app/cypress/tasks/mochaEvents.ts | 23 + packages/app/package.json | 1 + packages/app/src/runner/event-manager.ts | 6 + 17 files changed, 100015 insertions(+), 99242 deletions(-) delete mode 100644 packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.snapshots.ts delete mode 100644 packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts delete mode 100644 packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.snapshots.ts delete mode 100644 packages/app/cypress/e2e/runner/runner.mochaEvents.snapshots.ts create mode 100644 packages/app/cypress/e2e/runner/snapshots/retries.experimentalRetries.mochaEvents.cy.ts.json create mode 100644 packages/app/cypress/e2e/runner/snapshots/retries.mochaEvents.cy.ts.json create mode 100644 packages/app/cypress/e2e/runner/snapshots/runner.experimentalRetries.mochaEvents.cy.ts.json create mode 100644 packages/app/cypress/e2e/runner/snapshots/runner.mochaEvents.cy.ts.json create mode 100644 packages/app/cypress/tasks/mochaEvents.ts diff --git a/packages/app/cypress.config.ts b/packages/app/cypress.config.ts index 829af6e628eb..92336a14e457 100644 --- a/packages/app/cypress.config.ts +++ b/packages/app/cypress.config.ts @@ -1,5 +1,6 @@ import { defineConfig } from 'cypress' import { initGitRepoForTestProject, resetGitRepoForTestProject } from './cypress/tasks/git' +import { writeMochaEventSnapshot, readMochaEventSnapshot } from './cypress/tasks/mochaEvents' export default defineConfig({ projectId: 'ypt4pf', @@ -44,6 +45,8 @@ export default defineConfig({ on('task', { initGitRepoForTestProject, resetGitRepoForTestProject, + writeMochaEventSnapshot, + readMochaEventSnapshot, }) return await e2ePluginSetup(on, config) diff --git a/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts b/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts index 38a6ad83825e..49b2224b617e 100644 --- a/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts +++ b/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.cy.ts @@ -1,6 +1,5 @@ import { loadSpec, runSpec } from './support/spec-loader' import { runCypressInCypressMochaEventsTest } from './support/mochaEventsUtils' -import { snapshots } from './retries.experimentalRetries.mochaEvents.snapshots' /** * The mochaEvent tests require a spec to be loaded and executed within an inner Cypress context. @@ -28,7 +27,6 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, describe('simple retry', () => { it('matches mocha snapshot', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": retries mochaEvents simple retry #1`, done, ) @@ -38,7 +36,7 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) @@ -60,7 +58,6 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, describe('test retry with hooks', () => { it('matches mocha snapshot', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": retries mochaEvents test retry with hooks #1`, done, ) @@ -69,7 +66,7 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, fileName: 'experimental-retries/test-retry-with-hooks.retries.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) @@ -91,7 +88,6 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, describe('test retry with [only]', () => { it('matches mocha snapshot', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": retries mochaEvents test retry with [only] #1`, done, ) @@ -100,7 +96,7 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, fileName: 'experimental-retries/test-retry-with-only.retries.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) @@ -122,7 +118,6 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, describe('can retry from [beforeEach]', () => { it('matches mocha snapshot', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": retries mochaEvents can retry from [beforeEach] #1`, done, ) @@ -131,7 +126,7 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, fileName: 'experimental-retries/can-retry-from-beforeEach.retries.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) @@ -247,7 +242,6 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, describe('can retry from [afterEach]', () => { it('matches mocha snapshot', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": retries mochaEvents can retry from [afterEach] #1`, done, ) @@ -256,7 +250,7 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, fileName: 'experimental-retries/can-retry-from-afterEach.retries.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) @@ -274,7 +268,6 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, describe('cant retry from [before]', () => { it('matches mocha snapshot', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": retries mochaEvents cant retry from [before] #1`, done, ) @@ -283,7 +276,7 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, fileName: 'experimental-retries/cant-retry-from-before.retries.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) @@ -360,7 +353,6 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, describe('three tests with retry', () => { it('matches mocha snapshot', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": retries mochaEvents three tests with retry #1`, done, ) @@ -369,7 +361,7 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, fileName: 'experimental-retries/three-tests-with-retry.retries.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) @@ -388,13 +380,12 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, // 'detect-flake-and-pass-on-threshold': will run a total of 6 times. All attempts fail. The test fails // 'detect-flake-but-always-fail': will run a total of 10 times. All attempts fail. The test fails. // 'detect-flake-but-always-fail-stop-any-passed': will run a total of 10 times. All attempts fail. The test fails. - describe('cleanses errors before emitting', () => { + describe('cleanses errors before emitting', { defaultCommandTimeout: 15000 }, () => { it('does not try to serialize error with err.actual as DOM node', function (done) { // because there are more attempts for 'detect-flake-but-always-fail', the timeout needs to be increased this.timeout(20000) const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1`, done, ) @@ -404,7 +395,7 @@ describe('Experimental retries: mochaEvents & test status tests', { retries: 0, projectName: project, }).then((win) => { // should not have err.actual, expected properties since the subject is a DOM element - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) }) diff --git a/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.snapshots.ts b/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.snapshots.ts deleted file mode 100644 index 8c3902c0f85b..000000000000 --- a/packages/app/cypress/e2e/runner/retries.experimentalRetries.mochaEvents.snapshots.ts +++ /dev/null @@ -1,54573 +0,0 @@ -export const snapshots = { - '"detect-flake-and-pass-on-threshold": retries mochaEvents simple retry #1': [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail": retries mochaEvents simple retry #1': [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents simple retry #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-and-pass-on-threshold": retries mochaEvents test retry with hooks #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail": retries mochaEvents test retry with hooks #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents test retry with hooks #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-and-pass-on-threshold": retries mochaEvents test retry with [only] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail": retries mochaEvents test retry with [only] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents test retry with [only] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-and-pass-on-threshold": retries mochaEvents can retry from [beforeEach] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h3', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h3', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h3', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail": retries mochaEvents can retry from [beforeEach] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h3', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h3', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h3', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents can retry from [beforeEach] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h3', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h3', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h3', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-and-pass-on-threshold": retries mochaEvents can retry from [afterEach] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r6', - title: 'suite 2', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 7, - outerStatus: 'passed', - }, - id: 'r7', - order: 4, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 6, - retries: 6, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 7, - outerStatus: 'passed', - }, - id: 'r7', - order: 4, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 6, - retries: 6, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 7, - outerStatus: 'passed', - }, - id: 'r7', - order: 4, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 6, - retries: 6, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 7, - outerStatus: 'passed', - }, - id: 'r7', - order: 4, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 6, - retries: 6, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 7, - outerStatus: 'passed', - }, - id: 'r7', - order: 4, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 6, - retries: 6, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r6', - title: 'suite 2', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r8', - title: 'suite 3', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r9', - order: 5, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r9', - order: 5, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r9', - order: 5, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r9', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r9', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r8', - title: 'suite 3', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail": retries mochaEvents can retry from [afterEach] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r6', - title: 'suite 2', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r6', - title: 'suite 2', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r8', - title: 'suite 3', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r9', - order: 5, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r9', - order: 5, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r9', - order: 5, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r9', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r9', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r8', - title: 'suite 3', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents can retry from [afterEach] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r6', - title: 'suite 2', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r7', - order: 4, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r6', - title: 'suite 2', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r8', - title: 'suite 3', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r9', - order: 5, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r9', - order: 5, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r9', - order: 5, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r9', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r9', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r8', - title: 'suite 3', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-and-pass-on-threshold": retries mochaEvents cant retry from [before] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - strategy: 'detect-flake-and-pass-on-threshold', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"before all" hook for "test 1"', - hookName: 'before all', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"before all" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail": retries mochaEvents cant retry from [before] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - strategy: 'detect-flake-but-always-fail', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"before all" hook for "test 1"', - hookName: 'before all', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"before all" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents cant retry from [before] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - strategy: 'detect-flake-but-always-fail', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"before all" hook for "test 1"', - hookName: 'before all', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"before all" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-and-pass-on-threshold": retries mochaEvents three tests with retry #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 7, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 6, - retries: 6, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 7, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 6, - retries: 6, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 7, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 6, - retries: 6, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 7, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 6, - retries: 6, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 7, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 6, - retries: 6, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail": retries mochaEvents three tests with retry #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents three tests with retry #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-and-pass-on-threshold": retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail": retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail-stop-any-passed": retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], -} as const diff --git a/packages/app/cypress/e2e/runner/retries.mochaEvents.cy.ts b/packages/app/cypress/e2e/runner/retries.mochaEvents.cy.ts index afc1ca0cb13e..eb4ce4656ba7 100644 --- a/packages/app/cypress/e2e/runner/retries.mochaEvents.cy.ts +++ b/packages/app/cypress/e2e/runner/retries.mochaEvents.cy.ts @@ -1,6 +1,5 @@ import { runSpec } from './support/spec-loader' import { runCypressInCypressMochaEventsTest } from './support/mochaEventsUtils' -import { snapshots } from './retries.mochaEvents.snapshots' /** * The mochaEvent tests require a spec to be loaded and executed within an inner Cypress context. @@ -13,7 +12,6 @@ describe('src/cypress/runner retries mochaEvents', { retries: 0, defaultCommandT // NOTE: for test-retries it('simple retry', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner retries mochaEvents simple retry #1', done, ) @@ -21,13 +19,12 @@ describe('src/cypress/runner retries mochaEvents', { retries: 0, defaultCommandT runSpec({ fileName: 'simple-fail.retries.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) it('test retry with hooks', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner retries mochaEvents test retry with hooks #1', done, ) @@ -35,13 +32,12 @@ describe('src/cypress/runner retries mochaEvents', { retries: 0, defaultCommandT runSpec({ fileName: 'test-retry-with-hooks.retries.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) it('test retry with [only]', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner retries mochaEvents test retry with [only] #1', done, ) @@ -49,13 +45,12 @@ describe('src/cypress/runner retries mochaEvents', { retries: 0, defaultCommandT runSpec({ fileName: 'test-retry-with-only.retries.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) it('can retry from [beforeEach]', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner retries mochaEvents can retry from [beforeEach] #1', done, ) @@ -63,13 +58,12 @@ describe('src/cypress/runner retries mochaEvents', { retries: 0, defaultCommandT runSpec({ fileName: 'can-retry-from-beforeEach.retries.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) it('can retry from [afterEach]', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner retries mochaEvents can retry from [afterEach] #1', done, ) @@ -77,13 +71,12 @@ describe('src/cypress/runner retries mochaEvents', { retries: 0, defaultCommandT runSpec({ fileName: 'can-retry-from-afterEach.retries.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) it('cant retry from [before]', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner retries mochaEvents cant retry from [before] #1', done, ) @@ -91,13 +84,12 @@ describe('src/cypress/runner retries mochaEvents', { retries: 0, defaultCommandT runSpec({ fileName: 'cant-retry-from-before.retries.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) it('three tests with retry', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner retries mochaEvents three tests with retry #1', done, ) @@ -105,14 +97,13 @@ describe('src/cypress/runner retries mochaEvents', { retries: 0, defaultCommandT runSpec({ fileName: 'three-tests-with-retry.retries.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) - describe('cleanses errors before emitting', () => { + describe('cleanses errors before emitting', { defaultCommandTimeout: 15000 }, () => { it('does not try to serialize error with err.actual as DOM node', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1', done, ) @@ -121,7 +112,7 @@ describe('src/cypress/runner retries mochaEvents', { retries: 0, defaultCommandT fileName: 'does-not-serialize-dom-error.cy.js', }).then((win) => { // should not have err.actual, expected properties since the subject is a DOM element - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) }) diff --git a/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts b/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts deleted file mode 100644 index 0ce432497d39..000000000000 --- a/packages/app/cypress/e2e/runner/retries.mochaEvents.snapshots.ts +++ /dev/null @@ -1,9393 +0,0 @@ -export const snapshots = { - 'src/cypress/runner retries mochaEvents simple retry #1': [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 1, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner retries mochaEvents test retry with hooks #1': [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 1, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner retries mochaEvents test retry with [only] #1': [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 1, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner retries mochaEvents can retry from [beforeEach] #1': [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h3', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h3', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h3', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 1, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner retries mochaEvents can retry from [afterEach] #1': [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 2, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 8]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 2, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 1, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h6', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h5', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h6', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h5', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r6', - title: 'suite 2', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 2, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h7', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r7', - order: 4, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 2, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 4]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h7', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r7', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'passed', - }, - id: 'r7', - order: 4, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'passed', - }, - id: 'r7', - order: 4, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'passed', - }, - id: 'r7', - order: 4, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'passed', - }, - id: 'r7', - order: 4, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'passed', - }, - id: 'r7', - order: 4, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h7', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r6', - title: 'suite 2', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r8', - title: 'suite 3', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r9', - order: 5, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r9', - order: 5, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r9', - order: 5, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r9', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r9', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: 'relative/path/to/spec.js', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r8', - title: 'suite 3', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r9', - order: 5, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner retries mochaEvents cant retry from [before] #1': [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - strategy: 'detect-flake-and-pass-on-threshold', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"before all" hook for "test 1"', - hookName: 'before all', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"before all" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner retries mochaEvents three tests with retry #1': [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 2, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 2, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1': - [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 2, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r2', - order: 1, - title: 'visits', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 2, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 2]', - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 3, - outerStatus: 'failed', - }, - id: 'r2', - order: 1, - title: 'visits', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: true, - currentRetry: 2, - retries: 2, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], -} as const diff --git a/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.cy.ts b/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.cy.ts index ed9b159cccb8..f2ed610a0561 100644 --- a/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.cy.ts +++ b/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.cy.ts @@ -1,6 +1,5 @@ import { runSpec } from './support/spec-loader' import { runCypressInCypressMochaEventsTest } from './support/mochaEventsUtils' -import { snapshots } from './runner.experimentalRetries.mochaEvents.snapshots' /** * The mochaEvent tests require a spec to be loaded and executed within an inner Cypress context. @@ -24,7 +23,6 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, // regardless of strategy, this should fail the suite immediately and not run any additional attempts, so the snapshots should be near identical it(`fail in [before]`, (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": tests finish with correct state hook failures fail in [before] #1`, done, ) @@ -33,7 +31,7 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, fileName: 'fail-with-before.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) @@ -45,7 +43,6 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, // 'detect-flake-but-always-fail-stop-any-passed': will run a total of 10 times and fail 10 times config is satisfied, the test fails, and the suite is skipped it(`fail in [beforeEach]`, (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": tests finish with correct state hook failures fail in [beforeEach] #1`, done, ) @@ -54,14 +51,13 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, fileName: 'fail-with-beforeEach.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) // regardless of strategy, this should fail the suite immediately and not run any additional attempts, so the snapshots should be near identical it(`fail in [after]`, (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": tests finish with correct state hook failures fail in [after] #1`, done, ) @@ -70,7 +66,7 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, fileName: 'fail-with-after.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) @@ -82,7 +78,6 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, // 'detect-flake-but-always-fail-stop-any-passed': will run a total of 10 times and fail 10 times config is satisfied, the test fails, and the suite is skipped it(`fail in [afterEach]`, (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": tests finish with correct state hook failures fail in [afterEach] #1`, done, ) @@ -91,7 +86,7 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, fileName: 'fail-with-afterEach.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) }) @@ -106,7 +101,6 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, // 'detect-flake-but-always-fail-stop-any-passed': will run a total of 10 times and fail 10 times config is satisfied, the test fails,but the suite is NOT skipped it('fail with [only]', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": tests finish with correct state mocha grep fail with [only] #1`, done, ) @@ -115,14 +109,13 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, fileName: 'fail-with-only.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) // This will be the same per strategy, as the test passes and retries don't get invoked it('pass with [only]', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": tests finish with correct state mocha grep pass with [only] #1`, done, ) @@ -131,7 +124,7 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, fileName: 'pass-with-only.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) }) @@ -141,7 +134,6 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, describe('mocha events', () => { it('simple single test', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": mocha events simple single test #1`, done, ) @@ -150,13 +142,12 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, fileName: 'simple-single-test.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) it('simple three tests', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, `"${project}": mocha events simple three tests #1`, done, ) @@ -165,7 +156,7 @@ describe('experimental retries: runner tests', { defaultCommandTimeout: 7500 }, fileName: 'three-tests-with-hooks.mochaEvents.cy.js', projectName: project, }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) }) diff --git a/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.snapshots.ts b/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.snapshots.ts deleted file mode 100644 index 469d4bb05311..000000000000 --- a/packages/app/cypress/e2e/runner/runner.experimentalRetries.mochaEvents.snapshots.ts +++ /dev/null @@ -1,30920 +0,0 @@ -export const snapshots = { - '"detect-flake-and-pass-on-threshold": tests finish with correct state hook failures fail in [before] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - strategy: 'detect-flake-and-pass-on-threshold', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"before all" hook for "test 1"', - hookName: 'before all', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"before all" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail": tests finish with correct state hook failures fail in [before] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - strategy: 'detect-flake-but-always-fail', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"before all" hook for "test 1"', - hookName: 'before all', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"before all" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail-stop-any-passed": tests finish with correct state hook failures fail in [before] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - strategy: 'detect-flake-but-always-fail', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"before all" hook for "test 1"', - hookName: 'before all', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"before all" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-and-pass-on-threshold": tests finish with correct state hook failures fail in [beforeEach] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 6, - strategy: 'detect-flake-and-pass-on-threshold', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"before each" hook for "test 1"', - hookName: 'before each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"before each" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail": tests finish with correct state hook failures fail in [beforeEach] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 10, - strategy: 'detect-flake-but-always-fail', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"before each" hook for "test 1"', - hookName: 'before each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"before each" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail-stop-any-passed": tests finish with correct state hook failures fail in [beforeEach] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 10, - strategy: 'detect-flake-but-always-fail', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"before each" hook for "test 1"', - hookName: 'before each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"before each" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-and-pass-on-threshold": tests finish with correct state hook failures fail in [after] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - strategy: 'detect-flake-and-pass-on-threshold', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r4', - title: '"after all" hook for "test 2"', - hookName: 'after all', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"after all" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - hookName: 'after all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - hookName: 'after all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - hookName: 'after all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail": tests finish with correct state hook failures fail in [after] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - strategy: 'detect-flake-but-always-fail', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r4', - title: '"after all" hook for "test 2"', - hookName: 'after all', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"after all" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - hookName: 'after all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - hookName: 'after all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - hookName: 'after all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail-stop-any-passed": tests finish with correct state hook failures fail in [after] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - strategy: 'detect-flake-but-always-fail', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r4', - title: '"after all" hook for "test 2"', - hookName: 'after all', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"after all" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - hookName: 'after all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - hookName: 'after all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - hookName: 'after all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-and-pass-on-threshold": tests finish with correct state hook failures fail in [afterEach] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 6, - strategy: 'detect-flake-and-pass-on-threshold', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"after each" hook for "test 1"', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"after each" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail": tests finish with correct state hook failures fail in [afterEach] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - null, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 10, - strategy: 'detect-flake-but-always-fail', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"after each" hook for "test 1"', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"after each" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-but-always-fail-stop-any-passed": tests finish with correct state hook failures fail in [afterEach] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 3]', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 10, - strategy: 'detect-flake-but-always-fail', - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"after each" hook for "test 1"', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"after each" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-and-pass-on-threshold": tests finish with correct state mocha grep fail with [only] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 6, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 5, - retries: 5, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-but-always-fail": tests finish with correct state mocha grep fail with [only] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-but-always-fail-stop-any-passed": tests finish with correct state mocha grep fail with [only] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: false, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 1, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 1, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 2, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 2, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 3, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 3, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 4, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 4, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 5, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 5, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 6, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 6, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 7, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 7, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 8, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'retry', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: false, - currentRetry: 8, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - currentRetry: 9, - retries: 9, - _slow: 10000, - invocationDetails: '{Object 9}', - hooks: '[Array 6]', - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 10, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - final: true, - currentRetry: 9, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-and-pass-on-threshold": tests finish with correct state mocha grep pass with [only] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-but-always-fail": tests finish with correct state mocha grep pass with [only] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-but-always-fail-stop-any-passed": tests finish with correct state mocha grep pass with [only] #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-and-pass-on-threshold": mocha events simple single test #1': [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-but-always-fail": mocha events simple single test #1': [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-but-always-fail-stop-any-passed": mocha events simple single test #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - '"detect-flake-and-pass-on-threshold": mocha events simple three tests #1': [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-and-pass-on-threshold', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-but-always-fail": mocha events simple three tests #1': [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { fnDuration: 'match.number', afterFnDuration: 'match.number' }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], - - '"detect-flake-but-always-fail-stop-any-passed": mocha events simple three tests #1': - [ - ['mocha', 'start', { start: 'match.date' }], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - strategy: 'detect-flake-but-always-fail', - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 9, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - ['mocha', 'end', { end: 'match.date' }], - ], -} diff --git a/packages/app/cypress/e2e/runner/runner.mochaEvents.cy.ts b/packages/app/cypress/e2e/runner/runner.mochaEvents.cy.ts index 73f4931bc33a..43b28f544711 100644 --- a/packages/app/cypress/e2e/runner/runner.mochaEvents.cy.ts +++ b/packages/app/cypress/e2e/runner/runner.mochaEvents.cy.ts @@ -1,6 +1,5 @@ import { runSpec } from './support/spec-loader' import { runCypressInCypressMochaEventsTest } from './support/mochaEventsUtils' -import { snapshots } from './runner.mochaEvents.snapshots' /** * The mochaEvent tests require a spec to be loaded and executed within an inner Cypress context. @@ -14,7 +13,6 @@ describe('src/cypress/runner', { retries: 0, defaultCommandTimeout: 7500 }, () = describe('hook failures', () => { it('fail in [before]', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner tests finish with correct state hook failures fail in [before] #1', done, ) @@ -22,13 +20,12 @@ describe('src/cypress/runner', { retries: 0, defaultCommandTimeout: 7500 }, () = runSpec({ fileName: 'fail-with-before.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) it('fail in [beforeEach]', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner tests finish with correct state hook failures fail in [beforeEach] #1', done, ) @@ -36,13 +33,12 @@ describe('src/cypress/runner', { retries: 0, defaultCommandTimeout: 7500 }, () = runSpec({ fileName: 'fail-with-beforeEach.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) it('fail in [after]', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner tests finish with correct state hook failures fail in [after] #1', done, ) @@ -50,13 +46,12 @@ describe('src/cypress/runner', { retries: 0, defaultCommandTimeout: 7500 }, () = runSpec({ fileName: 'fail-with-after.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) it('fail in [afterEach]', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner tests finish with correct state hook failures fail in [afterEach] #1', done, ) @@ -64,7 +59,7 @@ describe('src/cypress/runner', { retries: 0, defaultCommandTimeout: 7500 }, () = runSpec({ fileName: 'fail-with-afterEach.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) }) @@ -72,7 +67,6 @@ describe('src/cypress/runner', { retries: 0, defaultCommandTimeout: 7500 }, () = describe('mocha grep', () => { it('fail with [only]', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner tests finish with correct state mocha grep fail with [only] #1', done, ) @@ -80,13 +74,12 @@ describe('src/cypress/runner', { retries: 0, defaultCommandTimeout: 7500 }, () = runSpec({ fileName: 'fail-with-only.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) it('pass with [only]', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner tests finish with correct state mocha grep pass with [only] #1', done, ) @@ -94,7 +87,7 @@ describe('src/cypress/runner', { retries: 0, defaultCommandTimeout: 7500 }, () = runSpec({ fileName: 'pass-with-only.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) }) @@ -103,7 +96,6 @@ describe('src/cypress/runner', { retries: 0, defaultCommandTimeout: 7500 }, () = describe('mocha events', () => { it('simple single test', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner mocha events simple single test #1', done, ) @@ -111,13 +103,12 @@ describe('src/cypress/runner', { retries: 0, defaultCommandTimeout: 7500 }, () = runSpec({ fileName: 'simple-single-test.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) it('simple three tests', (done) => { const { assertMatchingSnapshot } = runCypressInCypressMochaEventsTest( - snapshots, 'src/cypress/runner mocha events simple three tests #1', done, ) @@ -125,7 +116,7 @@ describe('src/cypress/runner', { retries: 0, defaultCommandTimeout: 7500 }, () = runSpec({ fileName: 'three-tests-with-hooks.mochaEvents.cy.js', }).then((win) => { - assertMatchingSnapshot(win) + return assertMatchingSnapshot(win) }) }) }) diff --git a/packages/app/cypress/e2e/runner/runner.mochaEvents.snapshots.ts b/packages/app/cypress/e2e/runner/runner.mochaEvents.snapshots.ts deleted file mode 100644 index de4237fab5b9..000000000000 --- a/packages/app/cypress/e2e/runner/runner.mochaEvents.snapshots.ts +++ /dev/null @@ -1,4276 +0,0 @@ -export const snapshots = { - 'src/cypress/runner tests finish with correct state hook failures fail in [before] #1': - [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"before all" hook for "test 1"', - hookName: 'before all', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"before all" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner tests finish with correct state hook failures fail in [beforeEach] #1': - [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"before each" hook for "test 1"', - hookName: 'before each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"before each" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'before each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner tests finish with correct state hook failures fail in [afterEach] #1': - [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r3', - title: '"after each" hook for "test 1"', - hookName: 'after each', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"after each" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 1', - hookName: 'after each', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner tests finish with correct state hook failures fail in [after] #1': - [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - attempts: 1, - outerStatus: 'failed', - shouldAttemptsContinue: false, - }, - id: 'r4', - title: '"after all" hook for "test 2"', - hookName: 'after all', - hookId: 'h1', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - originalTitle: '"after all" hook', - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - hookName: 'after all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - hookName: 'after all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r4', - order: 2, - title: 'test 2', - hookName: 'after all', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - failedFromHookId: 'h1', - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner tests finish with correct state mocha grep fail with [only] #1': - [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'fail', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'failed', - }, - id: 'r3', - order: 1, - title: 'test 2', - err: { - message: '[error message]', - name: 'AssertionError', - stack: 'match.string', - parsedStack: 'match.array', - }, - state: 'failed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner tests finish with correct state mocha grep pass with [only] #1': - [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner mocha events simple single test #1': [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], - - 'src/cypress/runner mocha events simple three tests #1': [ - [ - 'mocha', - 'start', - { - start: 'match.date', - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before all" hook', - hookName: 'before all', - hookId: 'h1', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r3', - order: 1, - title: 'test 1', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r3', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r3', - order: 1, - title: 'test 1', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before all': [ - { - hookId: 'h1', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r4', - order: 2, - title: 'test 2', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r4', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - { - nextTestHasTestIsolationOn: true, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r4', - order: 2, - title: 'test 2', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:before:run:async', - { - id: 'r5', - order: 3, - title: 'test 3', - pending: false, - body: '[body]', - type: 'test', - wallClockStartedAt: 'match.date', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"before each" hook', - hookName: 'before each', - hookId: 'h2', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after each" hook', - hookName: 'after each', - hookId: 'h4', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'hook end', - { - id: 'r5', - title: '"after all" hook', - hookName: 'after all', - hookId: 'h3', - pending: false, - body: '[body]', - type: 'hook', - duration: 'match.number', - file: null, - invocationDetails: '{Object 9}', - currentRetry: 0, - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'pass', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test end', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r2', - title: 'suite 1', - root: false, - pending: false, - type: 'suite', - file: null, - invocationDetails: '{Object 9}', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'test:after:run:async', - { - _cypressTestStatusInfo: { - shouldAttemptsContinue: false, - attempts: 1, - outerStatus: 'passed', - }, - id: 'r5', - order: 3, - title: 'test 3', - state: 'passed', - pending: false, - body: '[body]', - type: 'test', - duration: 'match.number', - wallClockStartedAt: 'match.date', - wallClockDuration: 'match.number', - timings: { - lifecycle: 'match.number', - 'before each': [ - { - hookId: 'h2', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - test: { - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - 'after each': [ - { - hookId: 'h4', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - 'after all': [ - { - hookId: 'h3', - fnDuration: 'match.number', - afterFnDuration: 'match.number', - }, - ], - }, - file: null, - invocationDetails: '{Object 9}', - final: true, - currentRetry: 0, - retries: 0, - _slow: 10000, - }, - ], - [ - 'mocha', - 'suite end', - { - id: 'r1', - title: '', - root: true, - pending: false, - type: 'suite', - file: 'relative/path/to/spec.js', - retries: -1, - _slow: 10000, - }, - ], - [ - 'mocha', - 'end', - { - end: 'match.date', - }, - ], - ], -} as const diff --git a/packages/app/cypress/e2e/runner/snapshots/retries.experimentalRetries.mochaEvents.cy.ts.json b/packages/app/cypress/e2e/runner/snapshots/retries.experimentalRetries.mochaEvents.cy.ts.json new file mode 100644 index 000000000000..6e9e68e44cda --- /dev/null +++ b/packages/app/cypress/e2e/runner/snapshots/retries.experimentalRetries.mochaEvents.cy.ts.json @@ -0,0 +1,54982 @@ +{ + "\"detect-flake-and-pass-on-threshold\": retries mochaEvents simple retry #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": retries mochaEvents test retry with hooks #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": retries mochaEvents test retry with [only] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": retries mochaEvents can retry from [beforeEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h3", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h3", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h3", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": retries mochaEvents can retry from [afterEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r6", + "title": "suite 2", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 7, + "outerStatus": "passed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 6, + "retries": 6, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 7, + "outerStatus": "passed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 6, + "retries": 6, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 7, + "outerStatus": "passed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 6, + "retries": 6, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 7, + "outerStatus": "passed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 6, + "retries": 6, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 7, + "outerStatus": "passed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 6, + "retries": 6, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r6", + "title": "suite 2", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r8", + "title": "suite 3", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r9", + "order": 5, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r9", + "order": 5, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r9", + "order": 5, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r9", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r9", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r8", + "title": "suite 3", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": retries mochaEvents cant retry from [before] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "strategy": "detect-flake-and-pass-on-threshold", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"before all\" hook for \"test 1\"", + "hookName": "before all", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"before all\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": retries mochaEvents three tests with retry #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 7, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 6, + "retries": 6, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 7, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 6, + "retries": 6, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 7, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 6, + "retries": 6, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 7, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 6, + "retries": 6, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 7, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 6, + "retries": 6, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": retries mochaEvents simple retry #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": retries mochaEvents test retry with hooks #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": retries mochaEvents test retry with [only] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": retries mochaEvents can retry from [beforeEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h3", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h3", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h3", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": retries mochaEvents can retry from [afterEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r6", + "title": "suite 2", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r6", + "title": "suite 2", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r8", + "title": "suite 3", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r9", + "order": 5, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r9", + "order": 5, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r9", + "order": 5, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r9", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r9", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r8", + "title": "suite 3", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": retries mochaEvents cant retry from [before] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "strategy": "detect-flake-but-always-fail", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"before all\" hook for \"test 1\"", + "hookName": "before all", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"before all\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": retries mochaEvents three tests with retry #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": retries mochaEvents simple retry #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": retries mochaEvents test retry with hooks #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": retries mochaEvents test retry with [only] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": retries mochaEvents can retry from [beforeEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h3", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h3", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h3", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": retries mochaEvents can retry from [afterEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r6", + "title": "suite 2", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r6", + "title": "suite 2", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r8", + "title": "suite 3", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r9", + "order": 5, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r9", + "order": 5, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r9", + "order": 5, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r9", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r9", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r8", + "title": "suite 3", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": retries mochaEvents cant retry from [before] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "strategy": "detect-flake-but-always-fail", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"before all\" hook for \"test 1\"", + "hookName": "before all", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"before all\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": retries mochaEvents three tests with retry #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ] +} \ No newline at end of file diff --git a/packages/app/cypress/e2e/runner/snapshots/retries.mochaEvents.cy.ts.json b/packages/app/cypress/e2e/runner/snapshots/retries.mochaEvents.cy.ts.json new file mode 100644 index 000000000000..8e2d6472cf32 --- /dev/null +++ b/packages/app/cypress/e2e/runner/snapshots/retries.mochaEvents.cy.ts.json @@ -0,0 +1,9385 @@ +{ + "src/cypress/runner retries mochaEvents simple retry #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 1, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner retries mochaEvents test retry with hooks #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 1, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner retries mochaEvents test retry with [only] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 1, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner retries mochaEvents can retry from [beforeEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h3", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h3", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h3", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 1, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner retries mochaEvents can retry from [afterEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 2, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 8]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 2, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 1, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h6", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h5", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h6", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h5", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r6", + "title": "suite 2", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 2, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h7", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r7", + "order": 4, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 2, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 4]" + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h7", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r7", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "passed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "passed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "passed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "passed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "passed" + }, + "id": "r7", + "order": 4, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h7", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r6", + "title": "suite 2", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r8", + "title": "suite 3", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r9", + "order": 5, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r9", + "order": 5, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r9", + "order": 5, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r9", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r9", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": "relative/path/to/spec.js", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r8", + "title": "suite 3", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r9", + "order": 5, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner retries mochaEvents cant retry from [before] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "strategy": "detect-flake-and-pass-on-threshold", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"before all\" hook for \"test 1\"", + "hookName": "before all", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"before all\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner retries mochaEvents three tests with retry #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 2, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 2, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 2, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "retry", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r2", + "order": 1, + "title": "visits", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 2, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 2]" + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 3, + "outerStatus": "failed" + }, + "id": "r2", + "order": 1, + "title": "visits", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": true, + "currentRetry": 2, + "retries": 2, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ] +} \ No newline at end of file diff --git a/packages/app/cypress/e2e/runner/snapshots/runner.experimentalRetries.mochaEvents.cy.ts.json b/packages/app/cypress/e2e/runner/snapshots/runner.experimentalRetries.mochaEvents.cy.ts.json new file mode 100644 index 000000000000..34fe0b696e99 --- /dev/null +++ b/packages/app/cypress/e2e/runner/snapshots/runner.experimentalRetries.mochaEvents.cy.ts.json @@ -0,0 +1,31292 @@ +{ + "\"detect-flake-and-pass-on-threshold\": tests finish with correct state hook failures fail in [before] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "strategy": "detect-flake-and-pass-on-threshold", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"before all\" hook for \"test 1\"", + "hookName": "before all", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"before all\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": tests finish with correct state hook failures fail in [beforeEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 6, + "strategy": "detect-flake-and-pass-on-threshold", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"before each\" hook for \"test 1\"", + "hookName": "before each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"before each\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": tests finish with correct state hook failures fail in [after] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "strategy": "detect-flake-and-pass-on-threshold", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r4", + "title": "\"after all\" hook for \"test 2\"", + "hookName": "after all", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"after all\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "hookName": "after all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "hookName": "after all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "hookName": "after all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": tests finish with correct state hook failures fail in [afterEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 6, + "strategy": "detect-flake-and-pass-on-threshold", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"after each\" hook for \"test 1\"", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"after each\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": tests finish with correct state mocha grep fail with [only] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 6, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 5, + "retries": 5, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": tests finish with correct state mocha grep pass with [only] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": mocha events simple single test #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-and-pass-on-threshold\": mocha events simple three tests #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-and-pass-on-threshold", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": tests finish with correct state hook failures fail in [before] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "strategy": "detect-flake-but-always-fail", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"before all\" hook for \"test 1\"", + "hookName": "before all", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"before all\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": tests finish with correct state hook failures fail in [beforeEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 10, + "strategy": "detect-flake-but-always-fail", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"before each\" hook for \"test 1\"", + "hookName": "before each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"before each\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": tests finish with correct state hook failures fail in [after] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "strategy": "detect-flake-but-always-fail", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r4", + "title": "\"after all\" hook for \"test 2\"", + "hookName": "after all", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"after all\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "hookName": "after all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "hookName": "after all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "hookName": "after all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": tests finish with correct state hook failures fail in [afterEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + null + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 10, + "strategy": "detect-flake-but-always-fail", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"after each\" hook for \"test 1\"", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"after each\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": tests finish with correct state mocha grep fail with [only] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": tests finish with correct state mocha grep pass with [only] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": mocha events simple single test #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail\": mocha events simple three tests #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": tests finish with correct state hook failures fail in [before] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "strategy": "detect-flake-but-always-fail", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"before all\" hook for \"test 1\"", + "hookName": "before all", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"before all\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": tests finish with correct state hook failures fail in [beforeEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 10, + "strategy": "detect-flake-but-always-fail", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"before each\" hook for \"test 1\"", + "hookName": "before each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"before each\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": tests finish with correct state hook failures fail in [after] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "strategy": "detect-flake-but-always-fail", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r4", + "title": "\"after all\" hook for \"test 2\"", + "hookName": "after all", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"after all\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "hookName": "after all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "hookName": "after all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "hookName": "after all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": tests finish with correct state hook failures fail in [afterEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 3]" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 10, + "strategy": "detect-flake-but-always-fail", + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"after each\" hook for \"test 1\"", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"after each\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": tests finish with correct state mocha grep fail with [only] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": false, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 1, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 1, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 2, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 2, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 3, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 3, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 4, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 4, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 5, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 5, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 6, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 6, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 7, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 7, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 8, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "retry", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": false, + "currentRetry": 8, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "currentRetry": 9, + "retries": 9, + "_slow": 10000, + "invocationDetails": "{Object 9}", + "hooks": "[Array 6]" + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 10, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "final": true, + "currentRetry": 9, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": tests finish with correct state mocha grep pass with [only] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": mocha events simple single test #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "\"detect-flake-but-always-fail-stop-any-passed\": mocha events simple three tests #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "strategy": "detect-flake-but-always-fail", + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 9, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ] +} \ No newline at end of file diff --git a/packages/app/cypress/e2e/runner/snapshots/runner.mochaEvents.cy.ts.json b/packages/app/cypress/e2e/runner/snapshots/runner.mochaEvents.cy.ts.json new file mode 100644 index 000000000000..e86dab7b8645 --- /dev/null +++ b/packages/app/cypress/e2e/runner/snapshots/runner.mochaEvents.cy.ts.json @@ -0,0 +1,4263 @@ +{ + "src/cypress/runner tests finish with correct state hook failures fail in [before] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"before all\" hook for \"test 1\"", + "hookName": "before all", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"before all\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner tests finish with correct state hook failures fail in [beforeEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"before each\" hook for \"test 1\"", + "hookName": "before each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"before each\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "before each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner tests finish with correct state hook failures fail in [after] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r4", + "title": "\"after all\" hook for \"test 2\"", + "hookName": "after all", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"after all\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "hookName": "after all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "hookName": "after all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "hookName": "after all", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner tests finish with correct state hook failures fail in [afterEach] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "attempts": 1, + "outerStatus": "failed", + "shouldAttemptsContinue": false + }, + "id": "r3", + "title": "\"after each\" hook for \"test 1\"", + "hookName": "after each", + "hookId": "h1", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "originalTitle": "\"after each\" hook", + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "hookName": "after each", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "failedFromHookId": "h1", + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner tests finish with correct state mocha grep fail with [only] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "fail", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + }, + { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "failed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "err": { + "message": "[error message]", + "name": "AssertionError", + "stack": "match.string", + "parsedStack": "match.array" + }, + "state": "failed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner tests finish with correct state mocha grep pass with [only] #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner mocha events simple single test #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ], + "src/cypress/runner mocha events simple three tests #1": [ + [ + "mocha", + "start", + { + "start": "match.date" + } + ], + [ + "mocha", + "suite", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "suite", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before all\" hook", + "hookName": "before all", + "hookId": "h1", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r3", + "order": 1, + "title": "test 1", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r3", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r3", + "order": 1, + "title": "test 1", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before all": [ + { + "hookId": "h1", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r4", + "order": 2, + "title": "test 2", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r4", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + }, + { + "nextTestHasTestIsolationOn": true + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r4", + "order": 2, + "title": "test 2", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:before:run:async", + { + "id": "r5", + "order": 3, + "title": "test 3", + "pending": false, + "body": "[body]", + "type": "test", + "wallClockStartedAt": "match.date", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"before each\" hook", + "hookName": "before each", + "hookId": "h2", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after each\" hook", + "hookName": "after each", + "hookId": "h4", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "hook end", + { + "id": "r5", + "title": "\"after all\" hook", + "hookName": "after all", + "hookId": "h3", + "pending": false, + "body": "[body]", + "type": "hook", + "duration": "match.number", + "file": null, + "invocationDetails": "{Object 9}", + "currentRetry": 0, + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "pass", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test end", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r2", + "title": "suite 1", + "root": false, + "pending": false, + "type": "suite", + "file": null, + "invocationDetails": "{Object 9}", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "test:after:run:async", + { + "_cypressTestStatusInfo": { + "shouldAttemptsContinue": false, + "attempts": 1, + "outerStatus": "passed" + }, + "id": "r5", + "order": 3, + "title": "test 3", + "state": "passed", + "pending": false, + "body": "[body]", + "type": "test", + "duration": "match.number", + "wallClockStartedAt": "match.date", + "wallClockDuration": "match.number", + "timings": { + "lifecycle": "match.number", + "before each": [ + { + "hookId": "h2", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "test": { + "fnDuration": "match.number", + "afterFnDuration": "match.number" + }, + "after each": [ + { + "hookId": "h4", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ], + "after all": [ + { + "hookId": "h3", + "fnDuration": "match.number", + "afterFnDuration": "match.number" + } + ] + }, + "file": null, + "invocationDetails": "{Object 9}", + "final": true, + "currentRetry": 0, + "retries": 0, + "_slow": 10000 + } + ], + [ + "mocha", + "suite end", + { + "id": "r1", + "title": "", + "root": true, + "pending": false, + "type": "suite", + "file": "relative/path/to/spec.js", + "retries": -1, + "_slow": 10000 + } + ], + [ + "mocha", + "end", + { + "end": "match.date" + } + ] + ] +} \ No newline at end of file diff --git a/packages/app/cypress/e2e/runner/support/mochaEventsUtils.ts b/packages/app/cypress/e2e/runner/support/mochaEventsUtils.ts index 9305cc9167d3..a0182a0ebc30 100644 --- a/packages/app/cypress/e2e/runner/support/mochaEventsUtils.ts +++ b/packages/app/cypress/e2e/runner/support/mochaEventsUtils.ts @@ -139,16 +139,14 @@ declare global { } } -export function runCypressInCypressMochaEventsTest (snapshots: T, snapToCompare: keyof T, done: Mocha.Done) { +export function runCypressInCypressMochaEventsTest (snapToCompare: string, done: Mocha.Done) { const bus = new EventEmitter() const outerRunner = window.top!.window + const filename = getCallerFilename() outerRunner.bus = bus - // TODO: Can we automate writing the snapshots to disk? - // For some reason `cy.task('getSnapshot')` has problems when executed in - // "cypress in cypress" - bus.on('assert:cypress:in:cypress', (snapshot: CypressInCypressMochaEvent[]) => { + bus.on('assert:cypress:in:cypress', (snapshots: Record, snapshot: CypressInCypressMochaEvent[]) => { const expected = snapshots[snapToCompare] const diff = disparity.unifiedNoColor(JSON.stringify(expected, null, 2), JSON.stringify(snapshot, null, 2), {}) @@ -156,7 +154,7 @@ export function runCypressInCypressMochaEventsTest (snapshots: T, snapToCompa /* eslint-disable no-console */ console.info('Received snapshot:', JSON.stringify(snapshot, null, 2)) - return cy.fail(new Error(`The captured mocha events did not match the "${String(snapToCompare)}" snapshot.\n${diff}`), { async: false }) + return cy.fail(new Error(`The captured mocha events did not match the "${String(snapToCompare)}" snapshot. You can automatically update the snapshot by setting the CYPRESS_SNAPSHOT_UPDATE environment variable.\n${diff}`), { async: false }) } Cypress.log({ @@ -169,10 +167,24 @@ export function runCypressInCypressMochaEventsTest (snapshots: T, snapToCompa }) const assertMatchingSnapshot = (win: Cypress.AUTWindow) => { - win.getEventManager().on('cypress:in:cypress:run:complete', (args: CypressInCypressMochaEvent[]) => { - const data = sanitizeMochaEvents(args) - - bus.emit('assert:cypress:in:cypress', data) + return new Promise((resolve) => { + win.getEventManager().on('cypress:in:cypress:run:complete', (args: CypressInCypressMochaEvent[]) => { + resolve(sanitizeMochaEvents(args)) + }) + }).then((snapshot) => { + cy.task('readMochaEventSnapshot', { filename }).then((existingSnapshots: any) => { + existingSnapshots ||= {} + + if (Cypress.env('SNAPSHOT_UPDATE') === 1) { + // overwrite the existing snapshot and write it to disk + existingSnapshots[snapToCompare] = snapshot + cy.task('writeMochaEventSnapshot', { filename, snapshots: existingSnapshots }).then(() => { + bus.emit('assert:cypress:in:cypress', existingSnapshots, snapshot) + }) + } else { + bus.emit('assert:cypress:in:cypress', existingSnapshots, snapshot) + } + }) }) } @@ -190,3 +202,7 @@ function sanitizeMochaEvents (args: CypressInCypressMochaEvent[]) { }) }) } + +function getCallerFilename () { + return (new Error()).stack!.split('\n')[1].split('/').slice(-1)[0].split(':')[0] +} diff --git a/packages/app/cypress/tasks/mochaEvents.ts b/packages/app/cypress/tasks/mochaEvents.ts new file mode 100644 index 000000000000..99d6598e05d4 --- /dev/null +++ b/packages/app/cypress/tasks/mochaEvents.ts @@ -0,0 +1,23 @@ +import path from 'path' +import fs from 'fs-extra' + +const snapshotFile = (filename: string) => path.join(__dirname, '..', 'e2e', 'runner', 'snapshots', `${filename}.json`) + +export const writeMochaEventSnapshot = ({ filename, snapshots }) => { + const jsonFile = snapshotFile(filename) + + fs.ensureFileSync(jsonFile) + fs.writeFileSync(jsonFile, JSON.stringify(snapshots, null, 2)) + + return null +} + +export const readMochaEventSnapshot = ({ filename }) => { + const jsonFile = snapshotFile(filename) + + if (!fs.existsSync(jsonFile)) { + return null + } + + return fs.readJsonSync(jsonFile) +} diff --git a/packages/app/package.json b/packages/app/package.json index 1bd79334f164..229355725c37 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -13,6 +13,7 @@ "cypress:open": "yarn cypress:run-cypress-in-cypress gulp open --project .", "cypress:run:ct": "yarn cypress:run-cypress-in-cypress node ../../scripts/cypress run --component --project .", "cypress:run:e2e": "yarn cypress:run-cypress-in-cypress node ../../scripts/cypress run --project .", + "cypress:run:e2e:update:snapshots": "CYPRESS_SNAPSHOT_UPDATE=1 yarn cypress:run-cypress-in-cypress node ../../scripts/cypress run --project . --spec **/*mochaEvents* --browser chrome", "dev": "yarn cypress:run-cypress-in-cypress gulp dev --project .", "start": "echo \"run 'yarn dev' or 'yarn watch' from the root\" && exit 1", "watch": "echo \"run 'yarn dev' or 'yarn watch' from the root\" && exit 1", diff --git a/packages/app/src/runner/event-manager.ts b/packages/app/src/runner/event-manager.ts index 13dca2e60f5a..1c4b55890fb4 100644 --- a/packages/app/src/runner/event-manager.ts +++ b/packages/app/src/runner/event-manager.ts @@ -587,6 +587,12 @@ export class EventManager { // is emitted from cypress/driver when running e2e tests using // "cypress in cypress" if (event === 'cypress:in:cypress:runner:event') { + // TODO: we sometimes receive multiple mocha:start events + // which causes the the mochaEvent snapshots to fail. We should investigate further. + if (args[0] === 'mocha' && args[1] === 'start') { + this.cypressInCypressMochaEvents = [] + } + this.cypressInCypressMochaEvents.push(args as CypressInCypressMochaEvent[]) if (args[0] === 'mocha' && args[1] === 'end') {